Seeking hints

Hi everyone,
I would like to build the tracker below and Iam thinking of creating each session as a program stage.

For each session, we register participants, session date and attendance (present or absent)

I would like to have the following indicators as a result:
Total participants who attended 4, 5 or 6 Sessions
Total participants who attended 8 Sessions

Would it be advisable to structure the app the way I mentioned? I am seeking help


Hello Davuya

Good day. Regarding you question, Yes, we will advise you make use of the tracker program and instead of creating multiple program stages you can make just one repeatable program stage and make each of the sessions an Option set with each of the options representing each session/attendance as shown in Image 1

Image1; Creating an option set

I hope our response is able to solve the issue you were facing.

With :hearts: from the Dhistance Team. The Easiest DHIS2 Setup. Up and running in 5 minutes!

No technical knowledge needed! Great Support with Data Security/Confidentiality.

Hi @e4eDHIS2,

  1. A part from creating an option set with options representing each session, to capture if the participant was present or absent for each session, do I also have to create an option set with options (present, absent)?

  2. And is there a way for the data capturer to control the number of sessions as keeps entering data in the repeatable stage? Like displaying a counter in the dashboard.

  3. As we also need to capture the date of each session, do I have to create a data element of DATE data type?


Hello Davuya

Regarding your follow up questions.

  1. You do not need to create an option set for the present and absent; you can make use of the Yes/No option set already provided by the DHIS 2. I have taken time to create a sample for you below in image 1.

  1. Unfortunately there is no program rule I am aware of that can limit the number of repeatable program stages. But a program rule to continually notify the data entry clerk of the limit is possible.
  2. Having a data element for date is not necessary; you can make use of “incident date”.

I hope our response is able to solve the issue you were facing.

Hi @e4eDHIS2,

The provided explanation is making my life easier. I do not know if I will be exaggerating when I ask the following questions:

  1. What kind of program rule would I need to notify the data entry clerk of the limit?

  2. would the incident date be equivalent to the date the session took place? As i have never used incident date, I do not know it works?; And the report date that is in the dashboard by default, does it play any role?

Thanks again

Hello Davuya

We are glad to hear our solutions have been of great help to you, regarding your questions.

  1. You will first have to make a “program rule variable”, image 1 shows and example of this after this you can then create a program rule

Image 1; Program rule variable

The program rule expression would be the attendance data element created which we advised you make an option set. This element created = the last attendance session option set code. Please view image 2. We made a replica example with 4 sessions. (#{Counselling rule} == ‘4SSE’)

Image 2; Program rule expression

If you want this program rule to also affect other option in the option set you created, you will need to add the ‘OR’ function and include other option sets code.

Image 3; Hint on where to find option set code.

After these processes are done, then you “Define program rule action” with the following options whichever suits you.

Image 4; Defining program rule action

  1. Yes, the incident date is equivalent to the date the session took place. The report date is ment to be the date the data was interred into the system.

The event date/incident date is the date when the event you are recording the data for occurred. For instance, if there is an event for “Child birth” the day a pregnant woman delivered the child is your event date, whereas enrollment date is the day the entity (Pregnant woman) is enrolled. For example, suppose a woman gave birth on Sunday, September 12th, 2021 (Event date), and the hospital clerk registers the woman on the DHIS 2 instance on Monday, September 13th, 2021 that is the Enrollment date.

We hope our response is able to solve the issue you were facing.

1 Like

Hi @e4eDHIS2,

I am wondering if you could help me build these program indicators as mentioned in the first post:
Total participants who attended 4, 5 or 6 Sessions
Total participants who attended 8 Sessions

I have already created the tracker following the steps you described. It seems challenging for me to build PIs when it comes to repeatable stage.

Many many thanks