Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
stylenone

Overview

...

You can view a video demo of the LIS-EMR exchange between OpenMRS(EMR) and OpenELIS here

A critical workflow for high quality care is the timely and accurate exchange of laboratory orders and test results between the clinic and laboratories. To digitize this workflow, you need an electronic medical record (EMR) capable of capturing orders, and a laboratory information system (LIS/LIMS) capable of order entry and capturing of test results associated with that order. Using the most recent informatics standards, this digitized Lab Order and Results workflow SOP focuses on the use of FHIR and the OpenHIE architectural pattern for implementation, and includes several implementation approaches depending on context (i.e. direct bridge, older messaging standards only in the local systems). This Lab Order and Results workflow utilizes the FHIR Workflow Module and suggested Communication Patterns to implement the ordering of lab tests from an EMR to an LIS and resulting from LIS to EMR.

Implementer Guide

...

Getting Started

To get started in implementing the EMR-LIS workflow between electronic systems, it is best to understand the full scope of high level steps that will possibly need to be done, depending on your situation in the environment you are implementing in. In general, these high-level steps may need to be taken. Details about each of these steps and the possible caveats will follow.

...

The lab order workflow follows the OpenHIE specification for standard lab ordering between an EMR and LIS. The workflow is detailed in the following sequence diagram:

...

Interaction

Data

Transaction Options

1

Create Lab Order

Order Save generates a new FHIR Task Bundled Order by creating a Task FHIR R4 Task Resource with a reference to a Service Request with order information

2

Send Lab Order

FHIR Task bundled order is sent to the IOL. Task status is aligned with the FHIR workflow communication pattern found here

3,4

Send New Lab Order

Bundled order is routed through the IOL to both the SHR and the LIS

5

Save Order and Update Order Status

FHIR R4 Task Resource Status is updated locally to either rejected or accepted. A FHIR R4 ServiceRequest Resource (example) is created for order processing with a reference to the associated task. EMR test requests and LIS orders are matched based on LOINC codes.

6

Send New Lab Order

Bundled order is routed through the IOL to both the SHR and the LIS

7,8

Send Order Update

IOL routes the updated FHIR R4 Tasks to the SHR and the EMR

9

Update FHIR Task Status

FHIR task status updated locally

Lab Results

...

Interaction

Data

Transaction Options

1

Results Saved and FHIR Task Updated

The results save generates a FHIR R4 DiagnosticReport Resource () with referenced FHIR R4 Observation resources () to store the results, and a reference to the associated Patient and Task Resource.

2

Search for Updated FHIR Tasks

FHIR R4 Search for Tasks based on tasks for which the owner is the EMR, and which have a status ‘completed’

3

Return FHIR Updated Tasks

FHIR R4 Task Resource with status ‘completed’ and reference to FHIR R4 DiagnosticReport

FHIR R4 bundle search response ()

4

Search for Associated Diagnostic Reports

FHIR R4 Search for DiagnosticReports by UUID

5

Return Associated Diagnostic Reports

FHIR R4 DiagnosticReport Resource with

6

Update FHIR Task Status, Store DiagnosticReports and Save Results

Developer Guide

...

Tutorial: Lab Order Communication between OpenMRS and OpenELIS

In this tutorial, we will use the resources from this documentation - with support from the Laboratory Workflow Implementation Guide and OpenHIE Architecture Specifications - to determine create a pilot implementation of Lab Test Order and Result Communication between an Electronic Medical Record (EMR) and a Lab Information System. We will use validated open-source solutions for each component of our pilot setup, and will use the OpenHIE specifications to guide our approach, the selection and roles of different components, and the language we use for disucssing the various concepts.

To get a better idea about the concepts and data elements were using, visit the Laboratory Workflows IG to a look at: 1. Our list of key concepts 2. Our logical model

We will focus on the following target architecture for our setup, which you can check out in the IG:

...

This architecture is based on the OpenHIE Specifications for Health Information Exchange components. For this tutorial, we will focus on using OpenMRS the reference implementation of an OpenHIE EMR, and OpenELIS, the reference implementation of an OpenHIE LIS.

...

  1. Setup OpenRMS 3.x on top an instance of the Reference Application click here for more infromation

  2. Install the Following Modules

  3. Configure the required settings

    • labonfhir.openElisUrl ,The URL for the FHIR server where OpenELIS polls the Orders From.

    • labonfhir.openElisUserUuid ,UUID for the service user that represents OpenELIS
      see more on Configuring the above Modules.
      Note: The Lab test Concept should be of class Test ,and should be mapped to a Loinc code that matches a the Test Loinc Code in OpenELIS

  4. Go to the Reff App (2.x) Patient Dashbord Prescribed Dashbord  Prescribed Medication Widget. see  
    see more on Creating Orders using the Order Entry Owa.

    If the Lab on FHIR module is rightly configured ,it will generate the lab FHIR Bundle and push to the remote Fhir Server for OpenELIS to poll the orders

  5. Start up the OpenELIS Update Task In order to be able to poll OpenELIS for available results, we need to turn on the following task in the OpenMRS scheduler: System Administration → Advanced Administration→ Advanced Administration → Scheduler → Manage Scheduler

  6. Enable the patient-test-results-app for the 3.x Frontenx. Go to the Patient DashBoard in 3.x ui and click Test Results.

...

iSantéPlus

  1. Install iSantePlus using one of these approaches.

  2. Install the Following Modules

  3. Configure the required settings .

    • labonfhir.openElisUrl ,The URL for the FHIR server where OpenELIS polls the Orders From.

    • labonfhir.openElisUserUuid ,UUID for the service user that represents OpenELIS

    see more on Configuring the Lab On FHIR Modules.

  4. To place Lab Orders ,Fill the Laboratory Analysis Form , select OPenELIS as destination Lab and Save. 
    Find Patient → Patient DashBord → Forms → Laboratory Analysis    NBAnalysis   NB. The Patient Must have an active vist

  5. Start up the OpenELIS Update Task in order to poll for Completed Results from OpenELISSystem OpenELIS 
    System Administration → Advanced Administration → Scheduler → Manage Scheduler

  6. To View The results ,Go to Laboratory History on the Patient DashBoard under General Actions. 
    Find Patient → Patient DashBord → Laboratory History

...

OpenELIS Global 2.6.x

The FHIR based Lab Workflow is supported in OpenELIS 2.6 .

  1. Start an instance of OpenELIS with the following configuration properties set in the properties file.

    • org.openelisglobal.fhirstore.uri=<localFhirServerUrl> . This is the Fhir Server that runs paralel with OPenELIS

    • org.openelisglobal.remote.source.uri=<remoreFhirServerUr>. This is the Fhir server that the Lab on FHIR module points to ie via the labonfhir.openElisUrl

    • org.openelisglobal.remote.source.updateStatus=true

    • org.openelisglobal.remote.source.identifier=Practitioner/<userUuuid> .This is the UUID of the user who created the Order ie labonfhir.openElisUserUuid

    • org.openelisglobal.task.useBasedOn=true

    • org.openelisglobal.fhir.subscriber=h<remoreFhirServerUrl> .

    • org.openelisglobal.fhir.subscriber.resources=Task,Patient,ServiceRequest,DiagnosticReport,Observation,Specimen,Practitioner,Encounter

  2. Ensure OpenELIS has the test that maps to the same LOINC code as the test Concept in OpenMRS. This can be added via theAdmin the
    Admin page → Test Management → Add Tests

  3. Configure OpenELIS to accept electronic orders. 
    Admin → Order Entry Configuration → external orders

  4. Search for the Electronic Orders ie Order → Electronic Orders and then Complete the Order Note that the user should have the right Lab Unit Priviledges to complete the Order

  5. After Results are captured and Validated , OpenELIS sends back the results to OpenMRS as a Diagnostic Report with an Observation

...

Zimbabwe HIE

  1. From the point of care, clinicians record lab request details, including sample type, test type, patient details and referral facility.

  2. The record is stored in the local Impilo Mysql database.

  3. A cron job is run periodically to check if there are any new changes.

  4. The Kafka producer listens for changes and pushes new records to OpenHIM through an OpenHIM channel. Each facility has its own channel.

  5. From the LIMS side, the sent records are pulled from OpenHIM and processed accordingly by the system.

  6. On completion, the results are sent to the OpenHIM channel.

  7. Impilo EHR fetches results from the OpenHIM channel through its Kafka consumer.

  8. The results are saved in EHR Impilo’s mysql database.

LNSP Workflow

...

  1. OpenHIM: serves as the Interoperability Layer for SEDISH. Through definition of routing channels it enables requests to be forwarded to the intended recipient systems. Through extensions that can be added to it, called mediators, OpenHIM can provide more complex orchestration of requests, such as handling of the XDS.b profile. OpenHIM mediators also enable compatibility with new messaging standards, such as FHIR or CDA version 3, if the need arises.

  2. All transactions that go through the Interoperability Layer are audited and can be inspected. Transaction that fail can be retried from within the admin interface. The IL also provides a centralized point for managing client access to SEDISH.

  3. ISantePlus EMR: Sends patient resource bundle is sent to SHR endpoint and the client registry

  4. The EMR sends lab request to OpenELIS.

  5. OpenELIS: A lab FHIR bundle is sent from from the laboratory information system to the SHR endpoint.

  6. SHR saves the patient and lab bundle : The SHR endpoint accepts the lab bundle and immediately saves it to the HAPI FHIR server. If the save is successful, the request is considered successful, and a success response is returned.

  7. Client Registry: The client compares and matches the patient as received.

  8. SHR Processes the Lab Bundle: The save operation triggers asynchronous workers synchronized via Kafka topics. These workers modify and enhance the lab bundle through several tasks:

  9. Service Request Translation: Codes for service requests are translated to CIEL/standard libraries/IPMS codes through communication with OCL (Open Concept Lab) for proper translation into IPMS HL7 messages.

  10. Location Mapping: Location information is mapped to IPMS locations with associated metadata for later translation into HL7 messages.

  11. Validation: The lab bundle is validated to ensure all required information is present.

  12. HL7 Translation: The enhanced lab bundle is sent to an HL7 translator to be translated into an ADT (Admit, Discharge, Transfer) message for patient registration.

  13. SHR Sends ORM Order Message to IPMS: The ORM message is sent to IPMS (Information Processing Management System) using a MLLP (Minimal Lower Layer Protocol) HL7 client built into the SHR.

  14. SHR Handles Message Results: IPMS processes the order and sends back an ORU (Lab Result) message with the results. These results are handled similarly to the previous steps, ensuring the right patient, task, and service requests are updated with diagnostic requests and observations.

  15. EMR Retrieves Results The ISante Plus EMR queries the HIE for owned tasks that have a status indicating the results are available.

  16. Kafka workflows: analytics are pushed to the data warehouse.