OpenSRP FHIR Web is the default frontend for OpenSRP HAPI FHIR Server, as well as a configuration dashboard for the OpenSRP FHIR Core mobile application. It provides access to healthcare data, configuration options, and other functionality provided by OpenSRP FHIR Server and OpenSRP FHIR Core.
- FHIR Standard
- OpenSRP FHIR Core
- Project Architecture
- Repository Setup
- Getting Started
- Contributing
- Deployments
- Configuration
- Publishing
HL7 Fast Healthcare Interoperability Resources (FHIR
), is a standard to enable quick and efficient representation and exchange of health care data, including clinical and administrative data, by digital health systems.
OpenSRP FHIR Core is a Kotlin application for delivering offline-capable, mobile-first healthcare project implementations from local community to national and international scale using FHIR and the WHO Smart Guidelines on Android.
OpenSRP FHIR Web consumes FHIR resources from the OpenSRP HAPI FHIR server. Both OpenSRP FHIR Web and OpenSRP HAPI FHIR server use a Keycloak Server for authentication (Oauth 2.0). On top of the React Js web application, there is a tiny Express JS Server that is bundled together with OpenSRP FHIR Web that handles both authentication and serving the compiled FHIR Web files. For All Intents and Purposes, both the Express and the React Js apps are bundled together and collectively referred to as the OpenSRP FHIR Web.
This repository is a monorepo bootstrapped with Lerna and Yarn Workspaces. It is divided into two workTrees, the first, /app, containing the actual React application, and the second, /packages containing the different packages that /app
consume.
- React
- TypeScript
- Ant Design
- Lerna
- Yarn Workspaces
- TanStack Query
- Jest
- React Testing Library
- React Router
- Eslint
- Prettier
We use different technologies to deploy OpenSRP FHIR Web.
- A well configured keycloak server deployment.
- A well configured Hapi FHIR server deployment.
- OpenSRP Web Ansible Playbook
- Run an OpenSRP Web deployment with certbot, react, express, and nginx.
- You'll need accompanying ansible inventories