Difference between revisions of "Using the single event API on DHIS2"

From mn/ifi/inf5750
Jump to: navigation, search
Line 1: Line 1:
Use /api/me to get the org unit of the logged in user. 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 which 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.
+
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: http://apps.dhis2.org/demo/dhis-web-maintenance-user/showAddUserForm.action 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.  
 
To create a user, go to: http://apps.dhis2.org/demo/dhis-web-maintenance-user/showAddUserForm.action 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. Go to http://apps.dhis2.org/demo/api/me . On the bottom, you'll see organisationUnits and you can see the id of Ngelehun (DiszpKrYNg8).  
+
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.  
  
Now find the program id you want to enter (or view) data for. Go to http://apps.dhis2.org/demo/api/programs.json. 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 http://apps.dhis2.org/demo/api/programs/eBAyeGv0exc.json. 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: http://apps.dhis2.org/demo/api/programStages/Zj7UnCAulEk.json
+
Go to http://apps.dhis2.org/demo/api/me . 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 http://apps.dhis2.org/demo/api/programs.json. 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 http://apps.dhis2.org/demo/api/programs/eBAyeGv0exc.json. 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: http://apps.dhis2.org/demo/api/programStages/Zj7UnCAulEk.json
  
See the event analytics api documentation at: http://www.dhis2.org/doc/snapshot/en/user/html/ch25s22.html
+
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'''
  
The following URL is an example which lists a list of events (see doc-link above):
+
http://www.dhis2.org/doc/snapshot/en/user/html/ch25s07.html
  
http://apps.dhis2.org/demo/api/analytics/events/query/eBAyeGv0exc?startDate=2012-01-01&endDate=2012-10-
+
For example, access: http://apps.dhis2.org/demo/api/events/KNDKnxPZFK6.json
31&dimension=ou:O6uvpzGd5pu;fdc6uOvgoji&dimension=oZg33kd9taw&dimension=qrur9Dvnyt5:EQ:18For
 
  
To extract and submit individual event data, use another api. See http://www.dhis2.org/doc/snapshot/en/user/html/ch25s07.html
+
To retrieve a list of events, do the following:  
  
For example, access: http://apps.dhis2.org/demo/api/events/KNDKnxPZFK6.json
+
http://apps.dhis2.org/demo/api/events?orgUnit=A&program=B&startDate=2000-01-01&endDate=2013-01-01
 +
 
 +
For example:
 +
 
 +
http://apps.dhis2.org/demo/api/events.json?orgUnit=DiszpKrYNg8&program=eBAyeGv0exc&startDate=2000-01-01&endDate=2013-01-01

Revision as of 09:22, 14 November 2013

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: http://apps.dhis2.org/demo/dhis-web-maintenance-user/showAddUserForm.action 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 http://apps.dhis2.org/demo/api/me . 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 http://apps.dhis2.org/demo/api/programs.json. 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 http://apps.dhis2.org/demo/api/programs/eBAyeGv0exc.json. 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: http://apps.dhis2.org/demo/api/programStages/Zj7UnCAulEk.json

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

http://www.dhis2.org/doc/snapshot/en/user/html/ch25s07.html

For example, access: http://apps.dhis2.org/demo/api/events/KNDKnxPZFK6.json

To retrieve a list of events, do the following:

http://apps.dhis2.org/demo/api/events?orgUnit=A&program=B&startDate=2000-01-01&endDate=2013-01-01

For example:

http://apps.dhis2.org/demo/api/events.json?orgUnit=DiszpKrYNg8&program=eBAyeGv0exc&startDate=2000-01-01&endDate=2013-01-01