Portable Health Clinic (PHC) system is a remote healthcare system that uses the functions of both eHealth and telemedicine systems. It is co-developed by Kyushu University, Japan, and Grameen Communications, Bangladesh. The PHC health information system currently serves more than 45,000 patients and has been operating since 2010. Initially focused on operating only primary health data, it has now been expanding its reach by including additional specialties such as Tele-Pathology and Tele-Eye Care modules to its healthcare system.
The Portable Health Clinic consists of the following components:
Portable Health Clinic Box: A set of sensors - thermometer, blood tester, urine tester, etc. to measure health status.
GramHealth Software: GramHealth Client software tool collects the healthcare data and transmits it to the server.
GramHealth Server: A cloud-based software system to archive personal health records, produce statistics and provide healthcare tips to individuals.
Telemedicine Centre: A physical or virtual call center with connected licensed doctors.
While PHC has been meeting the requirement of storing health data in electronic format, the platform was not designed to support Data portability, Data modeling, Data sharing, Data Security, Data Privacy. This was a major concern especially since the project was expanding in scope across the globe to become the Global Portable Health Clinic (gPHC) system.
With the perspective of making the platform interoperable globally, the scope of work included the ability to share and transfer data along with enabling the system to be easily installed and deployed at different sites. This meant a focus on open standards like openEHR and FHIR to obtain semantically meaningful information.
The Medblocks team built a cloud-based responsive web application on top of the Medblocks stack to serve multiple workflows for the remote health clinic.
The gPHC system includes two major applications: Patient Demographic Data management and Clinical Data management which use the FHIR REST API and the openEHR REST API respectively.
Upon user authentication/authorization, the user will be directed to the landing page which is the Patient List page. This page lists down all the existing patients.
On this page the user will be able to perform the following operations using purely FHIR REST operations:
· Search existing patients
· Add New Patient
· View Existing Patient details
· Edit Patient information
· Delete Patient
Add New Patient
With this functionality, the user will be able to add information on the patient by filling in the following patient registration form that was built using Medblocks UI to directly output FHIR resources.
The form also supports binding to existing data. So, the user will be able to edit patient information. Clicking the “Edit” button will navigate the user to the same Patient Registration page that is accessed using the Add New Patient functionality.
View Existing Patients
Clicking on the View button will navigate the user to the page displaying a message “Please click on the above button to start entering the data”. This message gets displayed when the NCD Form for the patient has not yet been filled out.
Patient demographic data is stored as FHIR Patient Resource. FHIR Resources can be understood as modular units that comprise the FHIR data standard. Health care data is broken down into categories such as patients, laboratory results, and insurance claims, among many others, each of which is represented by an FHIR Resource.
The PHC Web application included the following features:
- Input new clinical data
- Edit clinical data
- Fetch clinical data from the server
- Run analytics on clinical data
Non-Communicable Diseases (NCD) Form
The first task would be to model an openEHR template for the clinical data. This template is created by identifying appropriate archetypes and placing them in sections to build an openEHR template. This template is then posted to the openEHR CDR - in this case, EHRBase.
This template created is then developed into a web form that can persist data to the openEHR CDR using the Medblocks UI.
Clicking on the NCD form button opens the page displaying a set of basic clinical information such as Temperature, Pulse Rate, Height/Weight, and so on.
This form directly generates openEHR FLAT format data upon submission.
Just below the data elements, there is something referred to as the Triage with 4 color codes. These color codes serve as “Indicators” of the severity of the clinical conditions of the Patient in question and are based on the values that get entered in the NCD form for each patient. For example, as shown below the entries are color-coded as green, which indicates “Normal clinical values”, whereas the entries below are displayed in red which indicates Abnormal values/out of normal range values”
The below diagram details the workflow to create an openEHR based clinical application:
We used the official REST API of openEHR to create and retrieve data from the openEHR CDR.
This page displays trending graphs for the multiple values entered in the NCD form for Temperature, Pulse Rate, and so on. This was created using AQL on the openEHR server.
The system has been deployed and containerized applications. All the necessary configurations can be done on the docker-compose.yml file. All of the services are stateless and we used a managed Postgres database.
For larger deployments and scaling up, these configuration files can easily be deployed on a Kubernetes cluster using tools like Kompose.
Most of the components of the PHC system are open source. The components are as follows:
- Caddy Webserver
- HAPI JPA - FHIR server
- EHRbase - openEHR server
- Hermes - SNOMED terminology server
The architecture diagram above describes the stack better.
Hopefully, with these changes, the Portable Health Clinic can record meaningful data uniformly across multiple sites and truly become a Global PHC!