Health Management Information System (HMIS) Package
info
The Instant OpenHIE architecture, codebase, and documentation are under active development and are subject to change. While we encourage adoption and extension of the Instant OpenHIE framework, we do not consider this ready for production use at this stage.
The Instant OpenHIE HMIS Package is an indepedent architectural base that other packages can build off of.
This package has two parts to it:
- District Health Information System 2 (DHIS2)
- PostgreSQL - the database for DHIS2
#
Package functionalityThis package sets up containers that support the DHIS2. The DHIS2 instance is completely blank with default user access. DHIS2 is accessible on port 8081.
The configuration of DHIS2 is completely up to the implementer. An example of a custom package that has configured DHIS2 for its usecase is the WHO Covid19 surveillance package.
DHIS2 does not appear to be easily "un-configured" therefore perfect your configuration strategy locally before trying to configure your live environments.
#
Deployment strategyDHIS2 was already dockerised so we were able to re-use those images for our work in the core package.
We supplied a Docker Compose file for the setup and configuration of this application.
- Main
docker-compose.yml
file - sets up the base applications
For Kubernetes, we created deployment and service resource files for each component of each application.
The setup is orchestrated by a kustomization.yml
file for easy deployment.
#
HMIS Package Dev guideFor testing purposes, this package can be run independently. Below are some notes of how to do this. The recommended way to run Instant OpenHIE is described here.
Select a deployment target below and follow the getting started steps in setting up this package.
- Docker Compose
- Kubernetes
Before proceeding, ensure that you are in the root Instant OpenHIE directory.
From the working directory, execute the follow:
This will create all the services and print out their logs in the terminal.
#
View running Docker resourcesExecute the below commands to see the running Docker containers and the state that they are in.
To display all containers:
To stop the containers, use the command:
To completely remove all project components, use the following option:
If you are working with multiple cluster hosting clients you may need to switch cluster context for your deployment. See the below commands:
#
Minikube (local)For the Kubernetes deployment to work as expected, we need to ensure we have minikube
installed on our local machine running the deployment.
Follow these steps to install minikube
Once installed, we can start the minikube service by executing the below command:
This also updates the VM settings to make use of 4 CPU's and 8GB of RAM, instead of the default 2 CPU's and 4GB of RAM
Add more CPUs and Memory if you have spare capacity, especially if you plan on adding more packages later.
#
Getting StartedUseful Links:
Before proceeding, ensure that you are in the root Instant OpenHIE directory. From the working directory, execute the following:
The DHIS2 console url will be displayed in the terminal output when the script completes. The Url may take a few minutes to become active as the pod may not be fully initialized yet.
This bash script will apply the kubernetes kustomization.yaml
file which controls the HMIS Package
component (i.e. DHIS2).
On first run, the setup may take up to 10 minutes as the Docker images for each component will need to be pulled. This won't happen on future runs.
#
View running Kubernetes resourcesExecute the below commands to see the running Kubernetes resources and the state that they are in.
To display all resources: (Some new resources are not listed here)
To tear down this deployment, use the opposing command:
To completely remove all project components, use the following option: