Versions Compared

Key

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

...

  • ORM Mapping, and help manage the MSSQL database schema via migrations

  • Management of user and group Authentication and authorization (out if of the box) features.

  • The Admin Interface shown in Figure 2 is useful for management of registered OpenIMIS modules.

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's 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.

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.

...

The integration work package involved developing openHIM mediators that are mapped to OpenHIM core using Python Utils library that was forked from https://github.com/de-laz/openhim-mediator-utils-py. Each of the FHIR4 API endpoints shared by Davis was mapped to OpenHIM mediators developed using Django (Python web framework) as shown in Figure 4. Through the heartbeat functionality in the OpenHIM core, the administrator is able to check for the uptime of the an individual mediatorsmediator.
In this section we provide the implementation details for each workflow documented in the Project's Scope of Work. However, it is important to note that the Workflows for Contribution and Valuated Claims are yet to be implemented due to missing metadata or FHIR4 resources on the HL7-FHIR standard.

Figure 4: OpenHIM Python mediator

...

The Claim workflow shown in Figure 5 was mapped to FHIR4 resource and registered on openHIM claim mediator implemented as a Django app. However, the metadata for Valuated Claim Response need to be discussed for possible extension using FHIR4 Explanation of Benefits (EOB) and/or related FHIR R4 resources.

...

Plantumlcloud
filenameSD_AdjudicateClaimsAI.png
datanVPBboQgEP0ak/bQhOj+wKa1XQ/GRnrpkeo0JYHBRdjN/n3HRTdYt6bdZOI4Aw/ee0CyYb0T1nmtEral6KiQjewEuiRlVQdY1nzRN9QvymI5MAB2Rbno84q/87CD8M6g1x9gQ00xbZOyhyTL4/WzLVWvFX+j9LwrakqPSkg9LqVmZFLW+f7rx8wa+s5gD1TfIUBLGeE4h2nTegX3YdGof5VNfhDKCwcRlSVk8uE3/hdWQfww9YINXv0BSQHqrCxABv1Kreg3qE5z5ePMYAD9WNh7aaG93YuJyjUjXvL/+DDfahVrwXmLt3m8Yi624xXNnoYgNf584T7p0zfEj/I4thAen6I4rRs03P34vAmgAV0NjcFGKimcNDhS2TCiRc/1Gw==
width
compressedtrue
revision3

...


Figure 6: OpenHIM coverage mediator
Django App (Solution) codename: ~/django_openhim_mediators/coverage_mediator
Endpoint: http://104.236.37.64:5001/api/api_fhir_r4/Coverage
Username: health1
Password: health@123
Supported Methods: GET, POST

Person and

...

Group FHIR4 Mediator

The Person and Group workflow shown in Figure 7 has been implemented using separate openHIM mediators used to register the two API endpoints that expose patientsPatient/Insuree/insureesPerson, and families/groups Groups FHIR R4 resources

...


Figure 7: OpenHIM family and group mediator

Family Group Mediator
Django App (Solution) codename: ~/django_openhim_mediators/family_mediator
Endpoint: http://104.236.37.64:5001/api/api_fhir_r4/FamilyGroup
Username: health1
Password: health@123
Supported Methods: GET, POST

...

To test the mediators, we used insomnia which is an alternative to Postman, Figure 10 shows successful testing of the Organisation mediator using POST (push) and GET (pull) operations:

Figure 10: Testing openHIM mediators

To test integration, we used Admin Console that communicate communicates to the openHIM core via port 8080. Figures 11 shows the health (heartbeats) of registered python-based mediators used to facilitate FHIR 4 POST (push), GET (pull) and transaction log operations:

Figure11: Console showing registered FHIR4 Python mediators
Figures 12 shows the channels that are used to route request from the client to the upstream openIMIS server. Each channel has URL pattern that maps to openIMIS registered FHIR4 API endpoints:

Fig 12: FHIR 4 Channels corresponding to registered mediators

...

Although the API endpoints shared by Davis have been mapped and registered on openHIM, there are missing endpoints or FHIR4 resources that need to be reviewed or discussed by the development team. For example, we note that contribution resource/endpoint, and valuated claim resource/endpoint/response are not explicitly provided by the FHIR Financial Module. To overcome the challenge of implementing endpoints for these resources/mediators, the following are technical questions that need to be answered:

  1. Does claimResponse have sufficient metadata to support valuated claim?

  2. At what point in the claim workflow is valuation claim done?

  3. Does valuated claim require adjudication and check of eligibility using FHIR eligibility request and response resources?

  4. Does FHIR 4 Financial Module provide explicit resource or extensions for Contribution workflow?

...