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 DockerHub (public): https://hub.docker.com/repository/docker/imranq2/node-fhir-server-mongo. The b.well-internal image build and environment deploys are handled separately — see Deploying inside b.well below.
- Once step 1 finishes, you can pull this docker image to wherever you're running the fhir server.
Deployment to b.well environments is handled by internal b.well infrastructure, not by this repository's GitHub Actions. Creating a release here builds and publishes the public DockerHub image (above); the b.well-internal image build and environment deploys run separately. (b.well engineers: see the internal deployment runbook.)
Go to /version to see the version and image you're running.
Use /health as the url for health check in Kubernetes or other systems
The FHIR server can optionally send various Kafka Events Kafka Events
For Groups approaching MongoDB's 16MB document limit, the FHIR server supports event-sourced ClickHouse storage for scalable member queries ClickHouse Integration
This b.well FHIR server supports the $summary operation for the Patient, Person, and Practitioner resources. This operation allows you to retrieve a summary of a patient's information in a single request. download_summary.md
In addition to receiving search results in JSON format, you can also download the search results in Microsoft Excel format. To do this, you can use the following URL: download_results.md