Using the single event API on DHIS2

From mn/ifi/inf5750
Revision as of 09:54, 19 November 2013 by (talk | contribs)

Jump to: navigation, search

Use /api/me to get the org unit of the logged in user, as well as other user-specific data.

The admin user is attached to the National (Sierra Leone) org unit, where there is no single-event data to enter. The data to be entered is at the lower levels (for example Ngelehun). So to use this effectively, create a user which is attached to for example Ngelehun that you use to demo and test. When you create a user, you also need to give it access to the program and the correct permissions. The simplest is to add it to all the user roles.

To create a user, go to: and enter user details. Add all availalbe roles by pressing the '>>' button on 'Available roles'. Then select a lower org-unit. For example Ngelehun CHC.

Log in with this user in Chrome. Install a JSON formatter extension to see JSON more easily. For some tests it may also be useful to install the Postman Rest client extension to Chrome.

Go to . On the bottom, you'll see organisationUnits and you can see the id of Ngelehun (DiszpKrYNg8) if the user belongs to that org unit.

Now find the program id you want to enter (or view) data for, by going to This is a list of all programs the logged in user has access to. If you can't see a program here that you're expecting, it might be a permission setting for your logged in user. Find the program id. Both geolocation and survey projects are working on programs of the type: SINGLE_EVENTS_WITHOUT_REGISTRATION. Ignore the others. The "Inpatient morbidity and mortality" program for example has id eBAyeGv0exc. To see more info about this program, go to From this JSON, you'll also see the programStages. For Single Event, there's only one programstage. You can see more info about the programstage here:

There are two event APIs. One is the Event analytics, which is for more advanced analytics on events data, and the other is the events API. There is an important distinction. The Event Analytics API only shows events for yesterday and older. New events are NOT shown. This is very important to understand. Use the Events API, not the analytics API

For example, access:

To retrieve a list of events, do the following:

For example:

or for a patient-based program (with programstage). This one is relevant for the embedding-apps-in-tracker, but right now there is no patient-query variable, which we are hoping to add, but it may have to be added by the group themselves.

Some of these new features are not available on Release 2.13 (last stable release), but must be fetched from trunk. This means you need to use (not (/demo) to test them.

Enabling location

You have to manually go into the program->edit programstage settings on dev and turn on 'Capture coordinates' for the program to capture and show coordinates. Remember that the demo and dev database is reset every night, so you have to do this every day. 

You should use the server (not demo) when testing location.