Architectural Design Approach to support an integrated approach to patient-level indicator reporting for OpenMRS

The architecture has been designed to support an integrated approach to patient-level indicator reporting. 

In this setup, different types of point of service (POS) systems that are able to share patient-level data as FHIR can participate by sending data to a Shared Health Record. 

Our focus, however, is on OpenMRS as a POS system.


High Level Architectural Diagram For PLIR

                                    

The  architecture depicts how longitudinal client data will be retrieved from an instance of OpenMRS and sent to a Shared Health Record residing on a HAPI FHIR server via an Interoperability Layer Streaming Modes Using the  OpenMRS Analytics Engine which supports both Streaming and Batch modes using the Streaming and Batch Apps.
The HAPI FHIR server will serve as a repository for Shared Health Records as well as FHIR MEASURE resources that will be used for computing the reporting indicators (TX_PVLS ).

Below are the Main Components of the Architecture.

  • OpenMRS Point of Service system

    • OpenMRS FHIR2 module: This module already exists as an OpenMRS artifact and is actively under development. its sole responsibility will be to generate FHIR bundles upon request
    • Source MySQL Database .
      This will be configured to generate Database level logs 

  • OpenMRS Analytics Engine.
    This component will Extract Fhir resources from the OpenMRS  using FHIR2 module Both in Streaming and Batch Modes and send the data to an Interoperability
    Layer (IOL).
    The Streaming App is built on top of Apache Camel and an embedded Debezium Engine will track DB changes in the source OpenMRS database by reading the MySQL binary log , and then fetch the corresponding FHIR Resources from the OpenMRS FHIR2 module and send the FHIR Resources through camel routes to Shared Health Record via an Interoperability Layer.
           

    Project  repository : https://github.com/GoogleCloudPlatform/openmrs-fhir-analytics  .
    see more at the project wiki 

  • Interoperability Layer (IOL)
    The interoperability layer will sit at the heart of data exchange. It will receive transactions from the OpenMRS POS instances and relay them to a longitudinal client record residing in the Shared Health Record.
    Open Health Information Mediator(OpenHIM), a reference IOL application, will be used for this purpose. We will leverage the OpenHIM Mapping Mediator to perform any necessary validations and transformations before sending data to the Shared Health Record.

  • HAPI FHIR Server
    The HAPI FHIR server will act as both the Shared Health Record and a repository for FHIR measure resources definitions. The Shared Health record will store client longitudinal records relating to clinical encounters. The FHIR measure resources will form the basis for the calculation of the reporting indicators.
    The OpenMRS Customized Hapi Fhir server  supports the $collect-data  and 
    $evaluate-measure FHIR operations for evaluating the FHIR measure resources and generate Dataset relevant for the TX_PVLS Indicator and also Indicator Calculation using CQL evaluation .
    Project Repository :https://github.com/openmrs/openmrs-contrib-plm-fhir-server

  • CQL ENGINE 
     This is the tool that evaluates the CQL libraries to generate results in form of FHIR Measure Report .
     The Project uses an  embeded cql engine into HAPI FHIR JPA Server v5.3.0 . 

See full steps for the project Local Installation