Skip to content

Latest commit

 

History

History
 
 

docs

sidebar_position sidebar_label
1
Introduction

OpenSRP FHIR Core

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:

FHIR Core also interoperates well with:

  • OpenSRP Web to access healthcare data from the same HAPI FHIR server.

Programming Language

Kotlin -v1.7.10

Android libraries used

  1. Hilt- for dependency injection
  2. Jetpack Compose - for building sharable declarative Android UI
  3. Jetpack Compose navigation - to navigate between compose screens
  4. Android navigation component - to navigate between activities and fragments
  5. Android Livedata and ViewModel

Architecture

The app is architectured in the following manner:

  1. The app is built around MVVM architecuture with the data layer implemented using the Repository pattern.
  2. The entry point of the application also follows Single-Activity architecture after the user is logged in.

Data access

The application uses FHIR Engine APIs from Google's Android FHIR SDK (which internally uses Room libary) to access the local Sqlite database.

Configurations

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.

Tests

This repository also includes:

  1. Unit tests
  2. UI and integration tests