Hide data element/attribute value for certain users within tracker program?

Hi all, I think this was impossible back in the mid 2.2Xs, but there have been a lot of updates to DHIS2 approaches to sharing/permissions in recent releases so I wanted to check back in. Is it possible to hide a DE/attribute value (or the whole DE/attribute) for a tracker program from certain users? We have information that we would like to have in our system about individual clients, but we do not want the front-end case managers to be able to see that information about the client. I know we could do a separate program enrollment but I have found that adds a lot of complexity to the analytics.

Is it true that I could create a program stage to capture that information and refrain from sharing that stage with the user group in question, but they would be able to enroll clients and see the other program stages.

Also, has anyone automated regular imports of bulk data to a tracker program from another system (ODK or excel), without searching for each TEI individually and adding the data value? Importing data is simple but doing regular imports of data for TEIs who are continually newly enrolled seems more complicated, because you can’t just use the DHIS2-generated UID (without individually copying the DHIS2 UID over to the other dataset one by one based on another attribute like name & DOB). Have others programmed DHIS2 to generate a code based on attributes (I know you can do that), and then programmed the other system to generate the same code based on the same attributes, and merged the data into DHIS2 that way?

Thank you!!

1 Like

Hi @Natalie_Tibbels,

Yes, you should be able to share a specific program stage with just a specific set of users, that sounds like the way to go for your usecase.

As for the bulk import question, perhaps post a new topic about that since the name of this topic doesn’t relate to that issue as much, then maybe you get some more visibility to it too. :slight_smile:

Best regards,


Hi all,
I wanted to ask a follow up question - I have an event form already deployed where I would now like to hide a section from certain users. Those users have already been filling out the data elements in that section. We want to keep the data elements in the form, but change who is able to complete that section. Currently, I have the section hidden through a program rule based on a yes/no response, but they keep clicking “yes” to see the dropdown and then filling out the questions. :slight_smile:
First I checked to see if there was an expression I could create based on the user group (hide section based on user group or user role). Then I was thinking I could share the metadata (those specific data elements) differently than the form itself. But I am worried this will compromise previously entered data, or will prevent other users from viewing the data, or will cause confusion if they can still see the data elements but not fill them out. Obviously the best option is updating the training to remind them not to fill it out, but this change needs to be done rapidly and during COVID-19, it is difficult to gather people - ideal to simply make that part of the form disappear for the users I no longer want to fill it out.
Any thoughts/advice on how to hide a section/specific data elements in an event form based on user group?