Digital Square E0 proposal: openIMIS Shelf Readiness
Teams:
Swiss TPH (Dragos Dobre Patrick Delcroix Marco Antonio Guimaraes Pereira)
SolDevelo (Kamil Madej (Deactivated) Damian Borowiecki Seweryn Niedzielski)
Timelines: 08.04.2021 -> 31.12.2021
Jira board: https://openimis.atlassian.net/jira/software/projects/OE0/boards/35
Objectives
The goal of this project is to improve the open-source Insurance Management Information System (openIMIS) interoperability layer for easier and more efficient integration with other health-related systems within OpenHIE (Open Health Information Exchange) architecture, and to allow an efficient installation procedure through enhanced packaging and documentation, and thus, to align the solution with the Instant OpenHIE project and initiative.
Roadmap
The following sections will specify the changes and enhancements brought by this project to the two components from each WP.
1 openIMIS FHIR Module
1.1 FHIR release four (R4) integration
1.2 FHIR R4 extensions development
1.4 openIMIS FHIR Quality Assurance
To come
1.5 openIMIS FHIR module documentation
To come.
2 Packaging and Installation
2.1 Docker package improvement
Enhancement of openIMIS dockerization
For better distribution, docker can be used to facilitate the installation of openIMIS. The repository https://github.com/openimis/openimis-dist_dkr/tree/develop was updated to let users provide their own configuration using local files. For this, the user has to provide the openimis.json
file locally using the appropriate environmental variable. Two files can be provided for the backend and frontend configuration (from the https://github.com/openimis/openimis-dist_dkr/blob/develop/README.md):
BE_CONF_PATH=<the path to your config file, has to be local> FE_CONF_PATH=<the path to your config file, has to be local>
Additionally if the user wants to provide development settings, there is a variable for the path where this configuration file would be located:
DEV_PATH=<the path to your developer config, optional>
For even easier installation, the different repositories will be built on the fly directly from GitHub (repository previously provided). The user can change the branch using the variables:
BE_BRANCH=<branch of the backend repository to be used> FE_BRANCH=<branch of the frontend repository to be used> DB_BRANCH=<branch of the database repository to be used> GW_BRANCH=<branch of the gateway repository to be used>
openIMIS integrated with Instant OpenHIE
A package to include not only openIMIS, but also services that could be required by an user, e.g. a mediator (OpenHIM) or a FHIR server (Hapi), was developed. For this purpose, we extend the work of the OpenHIE, so called Instant OpenHIE (https://github.com/openhie/instant) to include openIMIS as a service (https://github.com/openimis/openimis-dist_instant_openhie/tree/develop).
To satisfy the Instant OpenHIE requirements, some alterations were necessary to the openIMIS docker package. The manual steps for the installation of the database were eliminated, so that the only command the user requires is:
./deploy.sh init core openimis-db_dkr openimis-dist_dkr -c="./openimis-db_dkr" -c="./openimis-dist_dkr"
To clean up the project you'd use destroy
instead of init
. The commands up
and down
known from docker-compose are also allowed.
Alternatively, you can achieve the same by cloning the https://github.com/openhie/instant repository, and running it with yarn. Having the repository locally, would replace the need of the deploy.sh.
Given that the service is in a directory that follows Instant OpenHIE structure, this implementation is extendable with any service the user may want by adding the package ID to the previous command with the corresponding path.
The variables for both services are now in the docker/compose.sh files of each service as opposed of the .env file in the previous repository.