Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pld update to docs url #2509

Merged
merged 8 commits into from
Jun 29, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CNAME
Original file line number Diff line number Diff line change
@@ -1 +1 @@
fhircore.smartregister.org
docs.smartregister.org
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ This repository contains the folders
* **[android](android)**: for building the Android application.
* **[docs](docs)**: a library of documents describing the FHIR Core solution.

We recommend reviewing the [docs](https://fhircore.smartregister.org/) before setting up the Android Studio Project in the [android](android) folder.
We recommend reviewing the [docs](https://docs.smartregister.org/) before setting up the Android Studio Project in the [android](android) folder.

For starter resources on the FHIR specification:

Expand Down
8 changes: 8 additions & 0 deletions docs/admin-dashboard/readme.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
sidebar_position: 3
sidebar_label: Admin Dashboard
---

# OpenSRP Admin Dashboard

The [OpenSRP Admin Dashboard](https://github.com/OpenSRP/web) allows users to manage and view the data in the mobile app.
6 changes: 6 additions & 0 deletions docs/analytics-dashboard/readme.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
sidebar_position: 4
sidebar_label: Analytics Dashboard
---

# OpenSRP Analytics Dashboard
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
label: Event Management
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

OpenSRP FHIR Core releases occur at most once every 2 weeks, i.e. at the conclusion of a sprint. The release process follows the [gitlab flow](https://docs.gitlab.com/ee/topics/gitlab_flow.html#release-branches-with-gitlab-flow) style described in the following diagram:

![](../assets/gitlabflow.png)
![](/img/gitlabflow.png)

This allows changes to occur on the code release branch while unrelated code continues being merged into main.

Expand Down Expand Up @@ -113,4 +113,4 @@ For example, to delete the v1.2.0-opensrp-rc1 tag run the command:

```
git push --delete origin v1.2.0-opensrp-rc1 && git tag --delete v1.2.0-opensrp-rc1
```
```
58 changes: 58 additions & 0 deletions docs/android-app/readme.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
sidebar_position: 2
sidebar_label: Android App
---

# OpenSRP Android App

This documentation covers the OpenSRP Android app, which is code-named "FHIR Core" throughout. 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](https://github.com/google/android-fhir) and [HAPI FHIR](https://hapifhir.io/). FHIR Core users experience a module oriented design based on over a decade of real world experience implementing digital health projects with [OpenSRP](https://smartregister.org/). 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](https://hl7.org/fhir/us/sdc/index.html) (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](https://www.keycloak.org/) server to manage identity, authentication, and authorization;
- A [HAPI FHIR](https://hapifhir.io/) server to store operation and configuration data that includes the [HAPI FHIR to Keycloak integration](https://github.com/opensrp/hapi-fhir-keycloak).

![OpenSRP the FHIR frontier logo](/img/fhircore.png)

#### Programming Language

Kotlin -[v1.7.10](https://kotlinlang.org/)

#### Android libraries used

1. [Hilt](https://developer.android.com/training/dependency-injection/hilt-multi-module)- for dependency injection
2. [Jetpack Compose](https://developer.android.com/jetpack/compose/documentation) - for building sharable declarative Android UI
3. [Jetpack Compose navigation](https://developer.android.com/jetpack/compose/navigation) - to navigate between compose screens
4. [Android navigation component](https://developer.android.com/guide/navigation) - 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](https://github.com/google/android-fhir) (which internally uses
[Room](https://developer.android.com/jetpack/androidx/releases/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 FHIR Core repository includes:
1. Unit tests
2. UI and integration tests
File renamed without changes.
Binary file removed docs/assets/fhircore.png
Binary file not shown.
61 changes: 7 additions & 54 deletions docs/readme.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,14 @@ sidebar_label: Introduction

# OpenSRP

OpenSRP is a platform for delivering digital health services. It has been used in project ranging from single location research studies to national health systems caring for over a hundred million patients. This documentation covers the OpenSRP Android app, which is code-named "FHIR Core" throughout.
OpenSRP is a platform for delivering digital health services. It has been used in projects ranging from single location research studies to national health systems caring for over a hundred million patients.

## Introduction
The OpenSRP platform consists of three primary components that are documented here, these are the:

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.
1. [OpenSRP Android App](/android-app)
1. [OpenSRP Admin Dashboard](/admin-dashboard)
1. [OpenSRP Analytics Dashboard](/analytics-dashboard)

FHIR Core is architected as a FHIR native digital health platform powered by Google's [Android FHIR SDK](https://github.com/google/android-fhir) and [HAPI FHIR](https://hapifhir.io/). FHIR Core users experience a module oriented design based on over a decade of real world experience implementing digital health projects with [OpenSRP](https://smartregister.org/). This repository contains the Android mobile application built to:
In addition, OpenSRP relies on a number of other modular tools as described in the diagram below.

- 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](https://hl7.org/fhir/us/sdc/index.html) (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](https://www.keycloak.org/) server to manage identity, authentication, and authorization;
- A [HAPI FHIR](https://hapifhir.io/) server to store operation and configuration data that includes the [HAPI FHIR to Keycloak integration](https://github.com/opensrp/hapi-fhir-keycloak).

FHIR Core also interoperates well with:
- [OpenSRP Web](https://github.com/OpenSRP/web) to access healthcare data from the same HAPI FHIR server.

![](assets/fhircore.png)

#### Programming Language

Kotlin -[v1.7.10](https://kotlinlang.org/)

#### Android libraries used

1. [Hilt](https://developer.android.com/training/dependency-injection/hilt-multi-module)- for dependency injection
2. [Jetpack Compose](https://developer.android.com/jetpack/compose/documentation) - for building sharable declarative Android UI
3. [Jetpack Compose navigation](https://developer.android.com/jetpack/compose/navigation) - to navigate between compose screens
4. [Android navigation component](https://developer.android.com/guide/navigation) - 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](https://github.com/google/android-fhir) (which internally uses
[Room](https://developer.android.com/jetpack/androidx/releases/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
![](/img/opensrp-platform-flow.png)
7 changes: 4 additions & 3 deletions docusaurus.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ const config = {
trailingSlash:false,
onBrokenLinks: 'ignore',
onBrokenMarkdownLinks: 'warn',
favicon: 'img/fhircore.png',
favicon: 'img/opensrp-logo.png',
staticDirectories: ['static'],

// GitHub pages deployment config.
// If you aren't using GitHub pages, you don't need these.
Expand Down Expand Up @@ -50,11 +51,11 @@ const config = {
title: 'OpenSRP',
logo: {
alt: 'OpenSRP Documentation',
src: 'img/fhircore.png',
src: 'img/opensrp-logo.png',
},
items: [
{
href: 'https://fhircore.smartregister.org/dokka',
href: '/dokka',
label: 'Code Docs',
position: 'right',
},
Expand Down
File renamed without changes
Binary file added static/img/opensrp-logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/opensrp-platform-flow.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.