Automating data exchange workflows between DHIS2, OpenMRS, and Open Concept Lab (OCL).
Note that commits to main will be auto-deployed to the connected project configuration hosted on OpenFn.org. Always work on a branch and submit a pull request when ready to release!
- Clone the repo to work with it locally
- Locally create
/tmpfolder locally with astate.jsonfile that you don't commit to github - start writing and testing jobs locally with the relevant adaptor
To prototype automated data exchange workflows between MSF's global DHIS2 system and locally-deployed OpenMRS instances, we implemented the OpenFn DPG for this prototype--specifically the platform v1 hosted on OpenFn.org.
If MSF hopes to pilot this solution with real-world sites, then it may choose to locally deloy the v2 of the OpenFn platform--OpenFn/Lightning. See below for what the proposed architecture might look like for this solution running at scale.
For the LIME-Project, two workflows were prototyped. These workflows leverage the OpenFn dhis2, openmrs, and ocl adaptors (see OpenFn/Docs), and connect with demo instances of the target systems.
- See below diagrams for a functional overview, or see the diagrams directory for the technical versions of these diagrams, which also detail the specific API steps.
- See this document for the data element mapping specifications, which detail how specific data points are mapped between systems.
- See this sheet for the test cases used to validate the workflows.
This workflow #1 is powered by by the following OpenFn jobs:
- wf1-1-getTEIs.j (using
dhisadaptor) - wf1-2-createPatients.js (using
openmrsadaptor) - wf1-3-updateTEIs.js (using
dhis2adaptor)
See the WF 1 technical diagrams for documentation on the specific API endpoints and operations automated in the job code.
This workflow #2 is powered by by the following OpenFn jobs:
- wf2-1-getPatients.js (using
openmrsadaptor) - wf2-2-upsertTEIs.js (using
dhisadaptor) - wf2-3-getEncounters.js (using
openmrsadaptor) - wf2-4-getOclMap.js (using
ocladaptor) - wf2-5-createEvents.js (using
dhisadaptor)
See the WF 2 technical diagram for documentation on the specific API endpoints and operations automated in the job code.
In Workflow 2, there is a step to dynamically export mapping specifications from OCL via its API.
- See this lime-project collection on the OCL hosted app to view how mappings were configured.
- See below diagram for an overview of how this works. For the prototype, this was implemented for the attributes
Entry triage colorandFinal diagnosis(data that is collected when new OMRSencountersare created).
Contact support@openfn.org for questions or help.



