sidebar_position | sidebar_label |
---|---|
1 |
Introduction |
FHIR Core is a Kotlin application for delivering configurable,offline-capable, mobile-first healthcare project implementations from local community to national and international scale using FHIR and the WHO Smart Guidelines on Android.
FHIR Core is architected as a FHIR native digital health platform powered by Google's Android FHIR SDK and HAPI FHIR. FHIR Core users experience a module oriented design based on over a decade of real world experience implementing digital health projects with OpenSRP. This repository contains the Android mobile application built to:
- Load configuration data as FHIR resources
- Support the WHO Smart Guidelines
- Manage the identities of healthcare workers (HCWs), community health workers (CHWs), care teams, patients, and clients
- Collect, view, and edit healthcare data with dynamic forms using FHIR's Structured Data Capture (SDC) implementation
- Securely store healthcare data encrypted at rest and securely transmit healthcare data using TLS
- Manage location hierarchies defined by community to national and international administrative boundaries
For remote data storage and login, the mobile application requires:
- A Keycloak server to manage identity, authentication, and authorization;
- A HAPI FHIR server to store operation and configuration data that includes the HAPI FHIR to Keycloak integration.
FHIR Core also interoperates well with:
- OpenSRP Web to access healthcare data from the same HAPI FHIR server.
Kotlin -v1.7.10
- Hilt- for dependency injection
- Jetpack Compose - for building sharable declarative Android UI
- Jetpack Compose navigation - to navigate between compose screens
- Android navigation component - to navigate between activities and fragments
- Android Livedata and ViewModel
The app is architectured in the following manner:
- The app is built around MVVM architecuture with the data layer implemented using the Repository pattern.
- The entry point of the application also follows Single-Activity architecture after the user is logged in.
The application uses FHIR Engine APIs from Google's Android FHIR SDK (which internally uses Room libary) to access the local Sqlite database.
The application syncs particular resources (conventionally, Composition and Binary) from the HAPI FHIR server to configure the app. The configurations control application workflows as well as the look and feel of the app.
This repository also includes:
- Unit tests
- UI and integration tests