In My First weeks of the Third Month (December) ,as the OpenMRS fellow Mentor
I Continued to work with the fellows , having mentorship sessions .
I als continued to contribute to the development of the Fhir2 Module , Analytics Engine and the PLIR project .
Summarized High Level Overview Of the OpenMRS Analytics Engine
Ive put together a high level design diagram of the OpenMRS analytics Engine Pipeline below to give a summarized overview of how the different component work together
In the above design Diagram , OpenMRS is the data Source . The FHIR2 modules does the work of translating OpenMRS data models into FHIR data for easy Interoperability with external Systems.
The Analytics Engine does the work of Extracting data from OpenMRS and Loading it to an external System.The Anaytics Engine Component is basically subdivded into three sub-components (sub-modules)
Batch . This extracts Fhir Data from OpenMRS in Bulk in from of Fhir Bundles using Fhir Search and depends on Apache Beam to export it to an external component.THis is meant for Batch/Bulk processing
Streaming-Atomfeed. This coponent continuously listens to changes from the OpenMRS atomfeed module, extracts the resource uuid from the feed and fetch the corresponding Fhir resource from OpenMRS .Note that this can only listen to changes made with in the Application .This is meant for Streaming processing.
Streaming-Dbezium. This component continuously listens to changes from MySQL bin-log , extract the table uuids from the logs and fetch the coresponding Fhir Resource from MySQL and export it to an external server . This has an advantage over the
Streaming-Atomfeed that it can capture changes made directly to the DB outside of the OpenMRS Application . At the heart of this sub-module is Apache Camel and an Embedded Dbezium Engine . This is also meant for Streaming-Processing.
Fhir Data Ware House
After data is extracted and loaded into an external system from Various OpenMRS sources , A Fhir data ware House is formed where Advanced Analytics tools like Elasticsearch , Apache Spark, and Apache Kafkacan be used to perform Big Data Analysis.
Several Data ware Houses are supported by the Analytics engine including Google Cloud Platform , Any Generic Fhir Server like Hapi Fhir Server , and Parquet files generation
cc @jennifer @k.joseph @grace