This projects implements the Helix FHIR Server which is a highly scalable FHIR server implementation with real-time data streaming, change event tracking and modern APIs such as GraphQL.
For example:
- Added support for every FHIR resource
- Added support for merging data via $merge
- Added support for $graph endpoint
- Added support for authentication
- Added support for checking user/x.x and access/x.x scopes
- Provides a WebUI to explore the FHIR data using the web browser
- Support GraphQL access to FHIR resources
- Added support for all FHIR search parameters
- Delayed processing for updating history table and creating audit logs to speed up the response to the client.
- Change events are (optionally) sent to a Kafka queue to enable any client to respond to and also enables realtime streaming.
This project has continuous integration set up so GitHub will automatically run tests on your Pull Requests.
To deploy this code:
- Create a new release in GitHub and choose the next available version number as the release name. This builds the docker image and pushes it to two locations: DockerHub (public) and AWS ECR(private for b.well). https://hub.docker.com/repository/docker/imranq2/node-fhir-server-mongo
- Once step 1 finishes, you can pull this docker image to wherever you're running the fhir server.
b.well has automated deployment set up. After the docker image is built and pushed:
- Run the GitHub Action for the appropriate environment: https://github.com/icanbwell/helm.helix-service/actions and input the version number to deploy
To set environment variables for desired environment update the environment-name-ue1.values.yaml in https://github.com/icanbwell/helm.helix-service/tree/main/.helm/
Go to /version
to see what version you're running.
Use /health
as the url for health check in Kubernetes or other systems
The FHIR server implements OAuth. You can set these environment variables:
- AUTH_JWKS_URL: Where to get the public keys of the OAuth provider (e.g., https://cognito-idp.us-east-1.amazonaws.com/us-east-1_yV7wvD4xD/.well-known/jwks.json)
- AUTH_CODE_FLOW_URL:
- AUTH_CODE_FLOW_CLIENT_ID:
- REDIRECT_TO_LOGIN: whether to redirect a GET call from a web browser to the OAuth Provider login page
The FHIR server can optionally send change events to a Kafka queue: Change Events
To run the New UI in local environment, follow these steps before running the container
cd ./src/web
nvm use && yarn install && npm run build
Then start the container: make up