Versions Compared

Key

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

Introduction

...

To expose the API endpoints, a REST interface is built on top of the services/Django models via Django REST Framework. The framework also provides a browsable documentation.

Figure 2: openIMIS Django Admin Interface

OpenHIM Mediators

The OpenHIM reference architecture shown in Figure 3 consists of the following major components namely: Core, Admin Console and Mediators. Core provides the openHIM main functionality; it processes the transactions from client systems. Its functionality is enhanced via Mediators, which are loosely coupled services that can add business logic to the transaction flow.
Image RemovedFigure below shows the order in which transactions flow through interactions carried out via the OpenHIM. The Python mediators exposes FHIR 4 API endpoints that allows clients or applications to make service requests from a web service through OpenHIM. The Core is responsible for defining and handling all incoming service requests. Service requests are received using a standard protocol HTTPs and translated by the Python Orchestrators into resources accessible by the other components. The Core receives authorized service requests from the mediator forwards it to the upstream server and monitors the transaction to fulfill the request to completion. The received response is stored for logging and audit purposes and can also be used to identify and handle exceptions. The web-based OpenHIM console is used by administrators to identify and solve recurring problems or failures. Note that each mediator contains the necessary logic to normalise, orchestrate and de-normalise that transactions forward or received from the Core.

...


Figure 3: openHIM reference architecture
The openHIM Core listens on ports 5000 (HTTPS) and 5001 (HTTP). These ports are the interface that clients use to communicate with the OpenHIM core. A client is an external system or App that send request and receive response via OpenHIM core. The Core exposes requested data using API endpoints via HTTPS port 8080. The Admin Console is a web-based interface implemented using AngularJS that makes it easier to manage OpenHIM mediators, client transactions and channels. A Channel defines a path that a client request will take through the OpenHIM. It describes one or more routes for request(s) to be forwarded to client(s) allowed to use the channel.

...