Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 Figure 1: Overall payment layer integration architecture

High-level workflow for integrated openIMIS and Mifos

The following workflow demonstrates how openHIM orchestration mediators facilitate data exchange between openIMIS and Mifos platform as shown in Figure 2. These two systems maintain accounts information which entails tracking balances and charges for registered clients shared between openIMIS and Mifos. The openIMIS FHIR resource for accounts management acts as a central record against which charges, payments, and adjustments are applied. It contains information about which parties are responsible for payment of the account including reference parameters that help in identifying the entity managing the account (organization) and the entity that caused the expense (patient/insuree or organization).

...

The purpose of the Python orchestration mediators is to:●     

  • Provide seamless connections to all required Payment Service Providers (PSPs) and payment methods through FHIR R4 API endpoints.

...

  • Provide intelligent logging and routing capabilities using configurable Django modules that enable quick addition or removal of payment endpoints.

...

  • Leverage on openHIM mediators to track transaction logs, statuses, and payment costs.

For seamless integration between openIMIS and Mifos through openHIM, we have developed openHIM mediators that implement canonical conversion depicted in Figure 4.

...

Fig 4: openIMIS Payment layer orchestration architecture

Canonical Transformation of FHIR R4 resources into Mifos JSON Schema

Many integration scenarios require translating messages from one data model to another before performing processes such as data validation, data integration, or data interoperability. The JavaScript Notation (JSON) stands out as a standard for representing and exchanging data between disparate systems and/or data formats. However, the challenge is to minimize dependencies when integrating applications that use different JSON schemas and data formats.

...

  • Mapping translation workflows between different hierarchical levels. This is achieved by flattening and recursively transforming FHIR R4 nested lists (arrays and dictionaries) into Mifos JSON Schemas using a Python function provided in Annex 1

  • Normalizations from different JSON and string formats to an internal canonical model supported by openIMIS or Mifos data models

  • Content Filtering to remove unnecessary, redundant, or sensitive or information coming from Mifos or openIMIS payloads

  • Payload orchestration to enrich content with different input messages, envelop wrappers, and metadata extracted or exchanged by integrated systems.

  • Sending GET and POST payloads to the upstream server (Mifos or openIMIS) using Python-based APScheduler library that implements trigger functions. This complements the roles played by openHIM polling channels and RESTHook expected to manage subscription-based resource sharing.

...