Data sets are a central part of DHIS2 and represents collections of data elements that together constitute a form to be reported by health facilities. An example of a data set could be “Child Health” which contains a variety of data elements for reporting numbers such as “BCG doses given”. Even though these collections of data elements are referred to as “Data Sets”, these are often thought of as “Forms” by the health workers, replacing similar-looking paper forms that have been used for many years to report the same data. Health workers use the app “Data entry” in DHIS2 to find and fill in such Data Sets or forms on a routine basis (e.g., every month or every two weeks).
After the forms have been filled and completed, the data is available in other apps in DHIS2 for analysis and presentation. Often, the health worker would want to go back and look at the forms they have submitted in the past. To do this, they use the “Report” app in DHIS2, where they use the “Data Set Report” section to browse these:
This case involves the design and development of a new and more user-friendly way of browsing old data set reports than the way displayed above.
Use Scenario
John is a health worker at a clinic. He is responsible for submitting routine reports at his health facility and keeping an overview of the status of the facility. On a regular basis, he submits several reports through the data entry application in DHIS2.
Often, he needs to go through previously submitted reports. Prior to DHIS2, John has kept his system on paper, where he easily could browse through older reports. He would then have different binders per form type (for instance one binder for “number of HIV patients” reports, one for “Child Health”, one for “Tuberculosis”, etc.), and within each binder he would arrange them chronologically with the newest report first.
In DHIS2, old reports can be viewed in the “Reports (Beta)” app, by selecting “Data Set Report” and choosing the correct organization unit, data set, and period. He finds this process cumbersome compared to his previous paper system.
The objective of this case is to create an app that enables end-users like John to easily navigate and display “Data set reports”.
Fundamental requirements
- User should be able to select the facility to see forms from
- skip if the user only has access to one facility. However, the facility name should be displayed
- User should be able to select the form (“Data Set”) to see
- skip if the user only has access to one data set. However, the name of the data set should be displayed
- User should be able to select a period in an easy way
- The selected report should be displayed
- User should be able to easily navigate/browse between periods
- for instance by clicking “Previous” and “Next” and/or showing a navigation pane
- User should be able to share the report with others
- for instance by copying the URL, sending it as a message within DHIS2, or by email
Other than these basic requirements, you are free to design the application in any way you want, emphasizing easy viewing, navigation, and sharing of reports. Remember that the problem now is that the selection of facility, data set and period is cumbersome and badly support fast browsing between periods. You should thus try to find new ways of navigation, selection, browsing, and displaying that may be easier for non-technical end-users. Making elements of the user interface that brings resemblance to paper-based browsing could be one approach. You should, for example, consider if a tree really is the best way to select an organization unit.
Potential additional features
(suggestions)
- Offline mode
- In addition to periods, the user should be able to easily navigate/browse between facilities, for instance by clicking “Previous” and “Next” and/or showing a navigation pane.
- The app should be able to handle situations where the user has access to many facilities (e.g., more than 10) in a ‘user-friendly’ manner.
- Make sure the user interface of the app works well on smaller screens such as tablets and/or mobile phones.
Useful API calls:
Get organisation units
https://play.dhis2.org/2.32.1/api/organisationUnits
Get the user’s organisation units
https://play.dhis2.org/2.32.1/api/me?fields=organisationUnits
Get data sets
https://play.dhis2.org/2.32.1/api/dataSets
Get the data set report content
Here, there are two types of responses from the API
- Array of objects representing a default table
Child Health → Monthly → Bo/Badjia/Ngelehun CHC → December 2019
https://play.dhis2.org/2.32.1/api/32/dataSetReport?filter=&ds=BfMAe6Itzgt&pe=201912&ou=DiszpKrYNg8&selectedUnitOnly=false - HTML response (based on custom forms design)
Life saving commodities → Monthly → Bo/Badjia/Ngelehun CHC → February 2019https://play.dhis2.org/2.32.1/api/32/dataSetReport/custom?filter=&ds=ULowA8V3ucd&pe=201902&ou=DiszpKrYNg8&selectedUnitOnly=false