From mn/ifi/inf5750
Revision as of 13:22, 27 October 2016 by Knutst@uio.no (talk | contribs) (B Data Store manager app)

Jump to: navigation, search

Most of the projects will make use of the DHIS2 Web API. The manual is here: [1]

Here is a nice intro to the API

Please note the the manual refers to version 25 of DHIS2, in this way:

demo/api/25/resources.json. You can just remove the version and get the same result, i.e. demo/api/resources.json

When you explore the API, it is very useful to install plugins for formatting JSON such as JSONView(Chrome) or JSONView (Firefox). The Chrome app PostMan is nice to use to test requests without having to code, similar to cURL.

(Or: To get cURL on your Windows computer, use Git Bash.)

A Cleaning and Deduplication of Events

The DHIS2 Tracker module allows people to collect individual level data. These come in two forms:

1) “Singleton” cases that are recorded only once without registration or follow-up (e.g. Outpatient data). DHIS2 calls this a single event.

2) Events linked to a person (the DHIS2 term is a Tracked Entity Instance - TEI) where you first look up a person (or register a new) who is enrolled in a health program and then follow the patient over a period, with each visit to the doctor recorded as an event, linked to the program (e.g. a TB patient).

However, patients often go to different clinics for the same thing, and a lot of data is collected offline, without the possibility to check if the patient is already in the system. Therefore, there is a need to A) identify duplicate people and B) reconcile the data belonging to the same person.

The task is to make a webapp which helps administrators to easily identify clear and potential duplicates (e.g. slight misspellings) and mark them for reconciliation (which the app could also assist in). A combination of automated and manual filtering/navigation. You can initially assume the number of persons and events is small enough to be handled in the client. For more advanced functionality, it is also interesting to link to server side procedures.

Inside DHIS2

Have a look at https://play.dhis2.org/demo/api/events.json?orgUnit=YuQRtpLP10I&ouMode=CHILDREN[1]

B Data Store manager app

Browse and update the values in the DHIS2 Data Store. User friendly presentation and navigation, possibly a way to keep an audit trail of changes and display/visualize statistics regarding the data, e.g. broken down by DHIS2 webapp (i.e. broken down by name space, assuming each app has a separate namespace).

You should first generate some data, which can for example be done using various Node.js libraries. See one example here.

The user interface should be nicely navigable

C Messaging and integration with Facebook/Twitter

Sharing favorites on Facebook / Twitter, and using fb / twitter api to post DHIS 2 Charts. Add support for sharing favorites of pivot tables, charts and maps to Facebook.

Existing maps (favorites) are accessible through the API, e.g. like this:



Useful information about sharing objects:


Lists are here:

Map favorites: https://play.dhis2.org/demo/api/maps.json

Chart favorites: https://play.dhis2.org/demo/api/charts.json 

Report/Pivot table favorites: https://play.dhis2.org/demo/api/reportTables.json 




Note: The best solution would be to implement these functionalities natively in DHIS, but that requires too much work for this course. Therefore, make it as a DHIS webapp.  

D Import, matching, visualizing

Two options

  1. Import data (and metadata) from the Demographic and Health Survey external API or from the World Bank API:  Mock-up
  2. Import events AND health facilities with coordinates linked to hierarchy using geography http://turfjs.org/ (earlier this text said events OR health facilities)

E Health Facility Registry

App providing an interface to the health facilities in a country (e.g. the Sierra Leone or Trainingland demo databases). The add should make it possible to search and list organisation units and see these in a map, along with relevant details regarding each facility such as type, the district it belongs to etc.

Some inspiration can be found in the Kenya Master Health Facility List

Place names with coordinates for the whole world can be found using MapZen

Make a web app in order to manage organization unit easily. 

The user should be able to:

  • Search for an org. unit and get facility details, using live search 
  • Filter your search based on levels
  • Present the information pertaining to the chosen facility in a drop-down menu beneath its name 
  • Locate on map
  • Edit coordinates
  • Edit org. unit details
  • Add a new facility by clicking on the map



F Refactor/Expand Comparative/Trend Analysis App with charts and maps

 The purpose of the Comparative/Trend app is to enable visual comparisons of charts and maps by placing them side-by-side or in a grid. For maps, the purpose is to show the same basic map for different time periods, so that changes over time become visible. An example could be a map showing measles incidence by district, week by week. For charts, the purpose is to show the same chart from multiple organisation units. An example could be a line chart showing the trend in a disease over time, district by district. The maps and charts could either be based on either existing chart or map favourites, or made ad-hoc based on selecting an indicator. However, the purpose is not to re-create the full Data Visualizer or GIS module of DHIS. An app was developed some years ago, available here.

G New app for standard aggregate data entry

The DHIS2 module for entering aggregate (not individual) data is old and not using the new Web API.

We need a new version which is also clever, so that when there is only 1 option, it is automatically selected, it displays option sets and preferably even allows for tabular data entry (with orgunits or data elements).
  1. [2]