Webinar on Tracker Implementation Considerations, Wednesday 28 April - Q&A thread - Add your questions and comments below

University of Oslo hosted a webinar on the 28th of April that aimed at providing a framework for how to assess and plan a Tracker project. Using Tracker to add individual-level data to your DHIS2 system allows to enhance data analysis and potentially streamline processes at the point of care, but it also adds to the complexity of the DHIS2 system. To know more about Tracker implementation, you can watch the recording of the webinar here.

This webinar marked the start of our 2021 Level 2 Tracker Implementation Academy programme.

Because our goal is to put more emphasis on real-world skills and projects, this training programme will also include a 10-day level 2 Academy on 25 May - 4 June. This Academy is targeting those responsible for implementing Tracker: program managers, training and health leads, decision makers and implementers.

More information and registration available here


One of the biggest considerations our team looks at while designing a tracker program/stage is the need for analytics vis-à-vis doing 1 stage or multiple stages, since until this moment we haven’t found a way to do reports that analyze data from multiple different stages (other than doing custom SQL queries).
What are the best practices here? Is there something we are missing? is this the same case for others?

1 Like

From my limited knowledge about the Tracker program, there is need for setting up “program stages”, which is good for services like immunization where there is fixed schedule for the follow up doses. However, if there is no fixed schedule required in a health service, can this be setup in the Tracker program?

1 Like

Your question is quite general, so it is possible that I am missing some of prerequisites linked to your question. At the first glance, if your goal is to produce reports based on data from several stages within one program, there is quite a lot you can reach with program indicators. It is possible to use data from program Indicators in reports.

Feel free to share more details. Hopefully, we can provide more detailed answers then.

Here is an overview of programIndicator functions

1 Like

This is a great question @SDKAAA and a high priority for more advanced tracker configurations.

For event reports, you might look into the enrollment line-listing. This allows you to do show data from two different stages on the same event report. Example below shows a program attribute, and data elements from repeatable TB visit and TB lab stage.

For program indicator analytics I’d recommend you look into the d2:count* class of functions for filtering enrollments by conditions across multiple stages or events. @YuryR has provided a link to those functions in docs above.

For example, consider that all of these are enrollment type program indicators with V{enrollment_count} expression.

Using a program indicator filters you can answer questions like this:
“How many TB patients had at least one result for a smear microscopy test”?

“How many TB patients had at least one positive result for a smear microscopy test”?

“How many pregnancies had at least one ANC visit with a hemoglobin value over 8?”

It should be noted that currently these are only possible with enrollment type program indicators, and therefore the organisation unit assignment is where the TEI was enrolled.


Android Manual sync’ing is always a problem for users. Any recommendations on using device remote management tools e.g sureMDM by 42gears to invoke a sync job or scheduling sync jobs on an Android device to ensure all devices stay sync’d with server?

Also kindly speak a little bit more on tracker implementation for clinical research - documented best case use scenarios!


Hi @ar.shahab . Using program stages to mirror a fixed clinical schedule like ANC or immunization is one way to configure Tracker, but it is not the only way. There are many different Tracker setups that support health programs where it is not known when a patient/client is expected, or what service they will need when they arrive. For example, you can set up a generic program for primary care, with questions related to a general patient visit. This could have an accompanying stage for lab work, or even a separate program for lab. When a diagnosis is determined, the patient could then be enrolled in a specific tracker program for that condition, such as TB or ART.

1 Like

Thank you Mike for the clarification.

1 Like

Thank you for your question @Morley!

The Android team has developed some MDM guidelines which can be accessed here:

They have also developed a guide on how to build your own APK which can also be helpful for private MDM deployments:

Hopefully those guidelines will be of help to you, and let us know if you have any additional questions there!

Also ccing some Android colleagues @jaime.bosque and @jose for any additional input.

1 Like

Question - say a program has 2 stages, how can you show some of the ‘element value’ entered in stage 1, while entering data for stage 2, as reference.

1 Like

@Morley , with regard to using Tracker data for research, there are three key ways that this can be done:

  1. A specific Tracker program can be set up for collecting the necessary data for a trial, with a workflow and analytics aimed at supporting the trial processes and needs. The data can also be exported from Tracker to an outside statistical tool, such as R, where more robust analytics can be run.

  2. A country can allow anonymized access to their existing Tracker program for research purposes. The eRegistries Initiative at the Norwegian Institute of Public Health has worked on this process for trials related to antenatal care in Palestine and Bangladesh. More information can be found here.

  3. A multi-country or global repository can be established for a specific need, where countries choose to export their individual level data for research or global level decision making. Various global agencies have established such repositories using DHIS2.

1 Like

Question - when an element value changes in a stage, can we update an attribute value of the tracker entity? Using any event, custom code etc?

1 Like

Question - when a TEI stage is submitted - can we update/recalculate some element values in a specific aggregate dataset?

1 Like

Question: How to configure a Tracker in which you have a repeatable stage and you want to be able to export a linelisting for this repeatable stage with all the events of each TEI in the same line. And you link it with data for the TEI in other non repeatable stages.

1 Like

I faced this situation during exporting a linelisting from a tracker program. TEI without id. I will like to know what is the cause. And how to prevent this kind of situation during configuration and/or training of users.

1 Like

Question: When options for a specific optionset change. What is the best manner to change it ?

Hi @Mahmud,

You can achieve this by creating programRuleVariables that takes data values from Data Elements.
Here you have the option of a programRuleVariable based on previous event, current event, latest event or a calculated value. You can then use program rules to display these data values from previous events, for example then from Stage 1 when you are entering data from Stage 2.

If you want to use the values as references, you can choose to display them in different ways - there are program rule actions for displaying values in the Feedback widget and the Program Indicator widget - but if you would like it directly next to value you are entering in Stage 2 then you can do it as a warning box (Show warning) or even as an autofilled new Data Element right next to it.

Questions: A tracker program used in health facilities. How to do to get a real time data with a high number of users?
Capacities of the server? What to activate in DHIS2? Etc.

Thank you Mike for the additional information in Zoom.

Hello Alice.
Is there any link for registration in the upcoming Tracker academy?

1 Like