Programs and Organizations units in the Capture App

Hi everyone.

  1. within the Capture App
    on the dropdown-list of Programs, how do one know that a given program is an “Event program” or a “Tracker program” ?
  2. within the Capture App,
    for a choosen Program, how do one know the related “valid” Organization unit ?

which section(s) of the Documentation talk deeply about “Configuring” and “Implementing” the Capture App?
Thnaks in advance for your answers.

Hi @DAGBEMAMBOU

Good question! I never thought if there was an easy and direct way within the Capture app. I’ve always navigated to the Maintenance app to double check. :joy: I found a workaround using the Network tab in DevTools(F12), or we can create a feature request (but whether it gets implemented depends on the demand and need as well).



As you can see from the screenshots, the latest request when I open the program show the kind of requests being sent. Events endpoint for the Event program and trackedEntityInstances for the Tracker programs.

I hope this work around helps.

You could use the Maintenance app, open the metadata configuration of the Program and select Access. There you’ll find the list of valid OUs. If the OU is not ‘valid’ when the user clicks on it they see a message:

The main documentation for the web Capture app is: Capture - DHIS2 Documentation

However, there are other docs related to implementing Tracker programs such as Target audience - DHIS2 Documentation


It’s really helpful to keep a topic specific to one main question so it can be ‘solved’, but I hope that we’ll be able to solve all your questions.

Thanks! :slight_smile:

Hi @Gassim

Thank you so much for your helpful workaround about this.
In the meantime, I noticed the following:
For a selected program and a valid related Organization Unit, the third field indicates either “Create new event” or “Create new person”:
is this not sufficient to deduce that the selected program is either an “Event program” or a “Tracker program” ?
Thank you again.

1 Like

You’re welcome!

Yes, yours is much simpler and direct way. My workaround isn’t at all necessary then :sweat_smile::sweat_smile:

Please feel free to mark your post as the solution if the case is solved. Thanks!