openHIM as Interoperability Layer : Generic Data Exchange Workflow
Properties
Reference | |
|---|---|
Sector | Health |
Components | |
github | https://github.com/openimis/sandbox/tree/develop/mediator https://github.com/NidanHIS/nidan-docker |
Purpose
This page describes a simpler idea: use one shared connector (openHIM) so that any outside system can exchange any type of information with openIMIS, not just claims. Think of it as a single reception desk instead of a separate door for every type of request: whether someone wants to check insurance coverage, look up a patient, or submit a claim, they go through the same entry point.
This page documents the generic role of openHIM as the Interoperability Layer (IOL) for all data exchanges between external Point-of-Service (PoS) systems and openIMIS — not limited to claim submission.
openIMIS manages multiple resource domains beyond claims: insuree/beneficiary records, geographic locations, insurance products and benefit packages, and the services/items billed within claims. Any of these domains can be exchanged through openHIM using the same architectural pattern.
This page serves as a parent page for all PoS integrations — including Medic/CHT and Bahmni — and captures how openHIM orchestrates any PoS → openIMIS data exchange, regardless of the resource domain involved, providing a reusable architectural reference aligned with openHIE principles.
Child workflows covered (eClaiming examples):
ℹ️ Note: eClaiming is the most mature use case implemented to date and is used throughout this page as the illustrative example. The architecture described applies identically to insuree enrollment, location synchronization, product/benefit package distribution, and service/item catalog exchange.
Trigger
Any Point-of-Service system submits or requests a FHIR resource — a Claim, Patient (insuree), Location, InsurancePlan (product/benefit package), or service/item-related resource — intended for processing in openIMIS.
Workflow Overview
Field | Value | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Workflow Maturity | Partially Implemented : Claims domain routed via configured mediators in sandbox. Security layer partially in place (JWT on Bahmni side; CHT pending). | ||||||||||||
Referenced Standards | HL7 FHIR R4: https://hl7.org/fhir/R4/index.html · openHIE Architecture: https://ohie.org · openHIM Documentation: http://openhim.org | ||||||||||||
openHIE Alignment | Fully aligned : openHIM fulfills the IOL role as defined by the openHIE Component Framework, across all resource domains | ||||||||||||
Actors |
| ||||||||||||
Assumptions & Prerequisites |
| ||||||||||||
Validations | openHIM (IOL) must validate, for any domain:
openIMIS (FIS) must validate, per domain:
|
Diagram
Generic Workflow Steps
The steps below describe the domain-agnostic pattern. The example uses the Claims domain (the current reference implementation); the same sequence applies to Insuree, Location, Products, or Services/Items exchanges once their mediators are configured.
Step 1 — PoS Initiates a Data Exchange Transaction
A PoS system (Bahmni, CHT, or other) composes a FHIR resource appropriate to the domain — Claim, Patient, Location, InsurancePlan, or a service/item-related resource — and submits it to the openHIM entry point via HTTPS.
Transaction: POST /fhir/{resource} or GET /fhir/{resource} (PoS → openHIM)
Step 2 — openHIM Receives and Authenticates