Go.Data Integrations with DHIS2

1. DHIS2 to Go.Data

See the Github folder dhis2togodata for the source code and information on available DHIS2-Go.Data integration scripts. These include:

1.1. Org unit converter:

Devleoped by EyeSeeTea LS (http://eyeseetea.com/), this is a Python script to take the national org tree from a DHIS2 instance, transform its .json structure and input it into Go.Data

1.2. API wrapper:

Developed by WISCENTD-UPC (https://github.com/WISCENTD-UPC/) - this package provides certain common things you may need in order to use Go.Data’s API, so that it is easier and faster. This utility library “wraps” the functionality of the API under a common tiny library that already handles functions such as login authorization that would otherwise have to be done for each query separtely.

See full package here: https://github.com/WISCENTD-UPC/godata-api-wrapper/tree/develop

1.3. Interoperability scripts:

Developed by WISCENTD-UPC (https://github.com/WISCENTD-UPC/) - these scripts push DHIS2 Tracked Entities for cases and contacts into Go.Data cases and contacts, in addition to automatically inserting them in a new or existing outbreak in Go.Data with the appropriate parameters.

See full package here: https://github.com/WISCENTD-UPC/dhis2-godata-interoperability/tree/develop

See more project-related updates here: https://www.essi.upc.edu/dtim/projects/COVID-19

2. Go.Data to DHIS2 Tracker (Individual-level data exchange)

Leveraging the Go.Data API and DHIS2 Tracker Web API, users can integrate individual-level data between the 2 systems.

Interoperability Scripts eveloped by WISCENTD-UPC (see above) will be expanded to demonstrate 2-way exchange of case information between DHIS2 tracked entity instance records or events and Go.Data cases or contacts. See more project-related updates here: https://www.essi.upc.edu/dtim/projects/COVID-19

3. Go.Data to DHIS2 Data Values (Aggregate-level data exchange)

See reference implementation #6 for specific step-by-step guidance leveraging OpenFn jobs with a real-world example of aggregate reporting. One of the first things you’ll need to do is identify the specific DHIS2 data set that you plan to integrate your Go.Data data with. In DHIS2, aggregate data captured as dataValueSets and is further defined across different dimensions called orgUnit, period, and dataElement & categories.

Data sets

Users will need to know the specific name and ID of the destination dataSet in DHIS2. You will need to obtain the ID from the test or production DHIS2 environment.

Organisation units

Aggregation by location in Go.Data is based on your Location hierarchy. Your Locations must align with DHIS2 organisation units. You will need to specify the DHIS2 orgUnit ID in order to upload aggregate results.

Period

All aggregate data reported is associated with a specific DHIS2 reporting period, which may be daily, weekly, monthly, yearly, etc. depending on the DHIS2 implementation. Examples: 20201205, 202012, 2020

Data elements

Calculations for DHIS2 indicators are based on dataElements. For each DHIS2 data element, you will need to calculate the summary value to send to DHIS2. You will need to know both the value and dataElement DHIS2 Id in order to upload new dataValues.

Categories

Categories are another dimension commonly used to define data elements in aggregate reporting.

4. Learn More

Read more about setting up DHIS2 aggregated reporting here, and learn about DHIS2 aggregation strategies.