Sept 23 - 16:00 - Tracker and Program Rules - Experts Lounge Q&A

In this discussion thread, feel free to ask questions related to the Tracker and Program Rules - Experts Lounge session of the 2020 DHIS2 Digital Annual Conference. You can post your questions ahead of, during, or after the session. The panelists will check this thread for questions, and select some for responding to in the session, or follow up after the session has ended. Feel free to respond to other questions or add to them if you have something to follow up with.

1 Like

Good afternoon and thank you for giving us this opportunity.

In previous DHIS2 versions, we have found out that the available functions when creating programRules are not supported in programIndicators or viceversa. Also, that some syntax is supported in one but not in the other and the documentation was a bit unclear whether which syntax/functions are supported in which type of object. We spended significant time in order to identify and correct this.
I know now it is easier to identify wrong expressions, but have there been any process of harmonizing expressions in both objects or detailing it in documentation?

Here JIRA comment ticket raised by Calle as an example.

Thank you,

If changing a NAME of a prgramRuleVariable which is already part or a programRule… will that name change flow through to the programRule expression when viewing it in the expression builder?

Would it be possible to have a list of TEI entities registered in a organisation Unit that are not enrolled to any program? Now the only way to find those patients is by searching for them which can be a bit cumbersome for the user.

In previous DHIS2 versions, when searching for the identifier of the patient (like patient code) the system was doing a like / approximate search. Now you have to write-up the exactly patient code in order to find it. In organisations where the patient code is quite large or follows long patters (NAMEOFTHEPROJECT-NAMEOFTHEREGION-0001)**. What was the reason of changing that and is there any way to make this behavior configurable.

Hi :slight_smile:
Posting some questions we decided to answer today, instead of in yesterday’s program indicators session + a new one:

  1. d2:round, d2:ceil and d2:floor functions do not work with mathematical expressions. I cannot create an experssion like this: d2:round(DataElement1/DataElement2). The functions only work with one data element at a time. This caused me a lot of trouble for a project and we actually built a custom app to bypass this issue.

  2. If an event has three input fields and 4 other fileds that are assigned with calculations from the previous three fields, the program rules are not calculating in real time. This is because DHIS2 needs action in the event itself, like populating a value to trigger the calculations.

  3. Are you planning on enabling tracker historical data import, preferably using a csv? In all projects that I have worked so far, there has been historical data for iimport. It would be really nice if csv data import (respecting the proper DHIS2 formatting of course) is available.

  4. In aggregate data sets when you double click on a field you can quickly set min and max values. I find this very helpful for Tracker data entry, but this feature seems to be unavailable.


Hi! This is not a program rule question, but a different Tracker question if there’s time. Is there any plan to allow category combinations on Tracker data elements?

For example, we often track training sessions with Capture, and will have something like:

# enrolled #attended
Admin staff

In aggregate, a table like this would be 2 data elements with category combos. In Tracker, we have to create separate data elements for each staff type, which multiplies quickly and also makes calculations complicated.


1 Like