Zimbabwe Health Information Exchange

Overview


Zimbabwe Health Information Exchange (Zimbabwe HIE) focuses on sharing health data across information systems possible. It enables data to be shared between databases, facilities, and across regions.The Zimbabwe HIE is built on top of OpenHIE’s Architecture which is made up of patterns that ensure that health information from various external systems is gathered into a single, unified HIE.

Architecture


The Zimbabwe HIE is based on the OpenHIE architecture. The following diagram shows the core components of the HIE architecture, and highlights the components currently in scope for implementation as part of the Zimbabwe HIE project.

 

HIE Components Index


Interoperability Layer The Interoperability Layer (IOL) is the core component of the OpenHIE architecture responsible for securely routing messages between the various other components of the HIE, and providing the entrypoint interface for external point-of-service clients. IOL OpenHIE Documentation

Client Registry (Master Patient Index)

The Client Registry (CR) is responsible for linking and managing the identities of patients across the health system. Client Registry OpenHIE Documentation (openCR)

Shared Health Record

The Shared Health Record (SHR) service stores the longitudal health record for each patient from across the health system. This component supports workflows that require access to a shared central repository of patient data, such and laboratory order and result workflows. SHR OpenHIE Documentation (hapifhr)

Terminology Service

The Terminology Service (TS) is responsible for managing terminology collections from across the health system and their mappings to standard terminologies. Terminology Service OpenHIE Documentation (conceptlab)

Facility Registry (Master Facility List)

The Facility Registry (FR) or Master Facility List (MFL) is responsible for managing the list of facilities and their health services across the health system.Facility Registry OpenHIE Documentation (GoFR)

Provider Registry

iHRIS

Point of Care Systems

Impilo LIMS Commcare Engage Bahmim

Change data capture (Debezium)

Debezium provides quick reaction every time that data changes, without modifying the apps that modify the data. Debezium continuously monitors our databases and lets any of our applications stream every row-level change in the same order they were committed to the database. The event streams are used to purge a cache, update search indexes, generate derived views and data, keep other data sources in sync, and much more.

Dashboard-visualiser (Superset)

Apache Superset is fast, lightweight, intuitive, and loaded with options that make it easy for users of all skill sets to explore and visualize their data, from simple line charts to highly detailed geospatial charts. Superset can connect to any SQL-based databases including modern cloud-native databases and engines at petabyte scale. is an open-source modern data exploration and visualization platform

Monitoring (Grafana)

Grafana supports a wide range of monitoring types. For ZIM Hie it used for the following services: 1. Infrastructure Monitoring: Grafana is used for monitoring the health and performance of infrastructure components such as servers, databases, and networks.

Application Monitoring:

Grafana is used to monitor application performance metrics such as response time, error rates, and throughput. Log Monitoring: Grafana is used to analyze logs and create visualizations of log data to identify trends, patterns, and anomalies. .

Data Streaming (Kafka)

Kafka is a streaming platform capable of handling trillions of events a day. The ZIM HIE project takes advantage of its three key capabilities as a streaming platform: 1. Streams of records are stored in a fault-tolerant durable way. 2. Processes streams of records as they occur, almost real-time with low latency. 3. Publishing and subscribing to streams of records, similar to a message queue or enterprise messaging system.

Reverse proxy (Nginx)

A reverse proxy server is a type of proxy server that typically sits behind the firewall in a private network and directs client requests to the appropriate backend server. A reverse proxy provides an additional level of abstraction and control to ensure the smooth flow of network traffic between clients and servers.

The ZIM Hie project uses Nginx for load balancing and web acceleration. We configured the reverse proxy to forward the requests to the Openhie environment. The reverse proxy listens for the following incoming service requests:

  • Openhimcomms

  • Openhimconsole

  • Openhimcore

  • Grafana

  • Opencr (Open Client Registry) (see Developer Guide)