Your organization is collecting patient data in a custom EMR application.
Your government partner wants you to start sending newly registered patient records from your EMR to its national DHIS2 system on a weekly basis.
You’ve been asked to design a workflow to:
- extract data from your app (which has a REST API that returns data in JSON)
- map the data elements to the DHIS2 data model, and
- sync patient records as “Tracked Entity Instance” records to DHIS2
Job 1: Get users from this endpoint https://jsonplaceholder.typicode.com/users
Job 2: For each user, create 1 tracked entity instance
in DHIS2.
See mapping spec here and sample output linked below
Job 1: Sample Users Data
http
adaptor
Job 2: I use the following to access via the web UI. Not sure that URL is required for the API. (Note this is DHIS2 v2.39.0.1
)
https://play.dhis2.org/2.39.0.1/
(UN: admin
, PW: district
See the latest DHIS2 Adaptor docs here: https://docs.openfn.org/adaptors/packages/dhis2-docs
I think this is what the final DHIS2 payload needs to look like: DHIS2 Sample Payload
FYI - To create tracked entity instance
, using the lates version of language-dhis2
create("trackedEntityInstances", {
orgUnit: "TSyzvBiovKh",
trackedEntityType: "nEenWmSyUEp",
attributes: [
{
attribute: "w75KJ2mc4zz",
value: "Gigiwe",
},
],
});
Day 2 Challenge
After syncing patient records as “Tracked Entity Instance” records to DHIS2, we realized that there are too many records being sync at once hence causing the DHIS to have performance issues.
You been asked to modified Job 2 -> sync patient records as “Tracked Entity Instance” records to DHIS2 to only sync 5 patients records at a time