Relationship in DHIS2: Need COP's suggestions

Hi all CoP,

Currently I need to build a new tracker, where some sections need to have multiple records of the same data (table records) as shown in the picture below.

The main question to the CoP is how it can be done in best way?
Q1: Should I create a tracker program and separate 2 event programs and set relationship? Or better to create 3 separate tracker programs?
Q2: How are these tracker programs/event programs should be connected - through common Tracker entity type?
Q3: How then final report can be done including related data for each events?

Please suggest me how you could build such tracker?

Thank you

Hi @Ulanbek

Thank you for the post! I hope we’ll get some more insights from the community and dhis2 experts. Would you add more description about the scenario and the use case? I think if we understand why this TEIs is tracked and what is being tracked, it would help in making decision to whether the TEIs needs to be enrolled in multiple programs or if one program would be enough.


1 Like

Hello @Ulanbek, we need to understand the use case as suggested by @Gassim so we can advise better.

1 Like

Dear @Gassim and @Barnabas_Akumba

Thank you for your reply. What I need is to create a tracker, where I have multiple stages and some of the stages needs to have multiple records such as date of test, type of test, results of that tests. I think I will create another stages in order to get test results.
Another question is how I can register the same person in few different orgUnits? The reason is most of NGOs are do only certain type of services, and the Person need to be enrolled to different orgUnits in order to get different types of tests, services, supports. Have you ever done such tasks?

Thank you very much for you help and support
Regards, Ulanbek

1 Like

Thanks @Ulanbek!

First, it sounds like you are describing what is called the ‘breaking the glass’ feature? Please have a look at the explanation by @Shurajit_Dutta in the Tracker Configuration academy (URL at the time of the slide):

Tracker stages can be either one event or with multiple events. Is that what you mean?


Thank you @Gassim for your reply. Actually I know what “breaking glass” is and grateful for referencing to the video.
Main requirement is other organisation should not have an access to the records/events created by the other organisations. So basically same person could be registered in few organisations, but those organisations shouldn’t know if the person also registered as other category of client. Basically need sort of protection of sensitive and personal information.

Regarding events in the tracker: some of stages can be recorded only once and the historical records such as test results, could be recorded as many time as required. Historical records I think can be taken as repeatable events. But the same time some DE in the stages depends on the value of last historical record. Let’s say I have DE which states current status of the client, which depends on the result of the last test. That’s I should think a bit about, how I can develop. maybe I will create hidden sections, where all calculations will be done and from there I will get what should be shown :slight_smile:

Do you think this is possible to implement in DHIS2?
Thank you very much

Regards, Ulanbek

Thanks @Ulanbek! So this seems more like a more private version of “breaking glass?”

I think for this it’s possible to use a program rule to get the last value?

Yes @Gassim , it should be kinda private access to the sensitive data. Would be great if we had some built in variables, such as: current_orgUnit_id, current_eventOwner_orgUnit_id, lastEventValue. Then would be much easier just to compare this 2 variables and hide respective sections or whole events to be seen in the PRs.

But it seems developers has their own plans and views and this cannot be developed soon :frowning:

Anyway thank you to all for participating :slight_smile: