Giter Club home page Giter Club logo

fhir-server's Introduction

Node.js CI

publish_docker

Intro

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:

  1. Added support for every FHIR resource
  2. Added support for merging data via $merge
  3. Added support for $graph endpoint
  4. Added support for authentication
  5. Added support for checking user/x.x and access/x.x scopes
  6. Provides a WebUI to explore the FHIR data using the web browser
  7. Support GraphQL access to FHIR resources
  8. Added support for all FHIR search parameters
  9. Delayed processing for updating history table and creating audit logs to speed up the response to the client.
  10. Change events are (optionally) sent to a Kafka queue to enable any client to respond to and also enables realtime streaming.

Cheat sheet

Cheatsheet

Security

Security

Optimizing Performance

Performance

FHIR GraphDefinition Support (We recommend using graphql below whenever possible instead)

Graph

GraphQL Support

GraphQL

Merge functionality

Merge

Streaming functionality

Streaming

Optimistic Concurrency Support

Optimistic Concurrency

Contributing

Contributing

Continous Integration

This project has continuous integration set up so GitHub will automatically run tests on your Pull Requests.

Building the Docker image and pushing to DockerHub

To deploy this code:

  1. 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
  2. Once step 1 finishes, you can pull this docker image to wherever you're running the fhir server.

Deploying inside b.well

b.well has automated deployment set up. After the docker image is built and pushed:

  1. 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/

Checking version of deployed fhir server

Go to /version to see what version you're running.

Health check

Use /health as the url for health check in Kubernetes or other systems

OAuth

The FHIR server implements OAuth. You can set these environment variables:

  1. 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)
  2. AUTH_CODE_FLOW_URL:
  3. AUTH_CODE_FLOW_CLIENT_ID:
  4. REDIRECT_TO_LOGIN: whether to redirect a GET call from a web browser to the OAuth Provider login page

Change Events

The FHIR server can optionally send change events to a Kafka queue: Change Events

Running New UI in local environment

To run the New UI in local environment, follow these steps before running the container

  1. cd ./src/web
  2. nvm use && yarn install && npm run build

Then start the container: make up

fhir-server's People

Contributors

007sunny avatar adhearn avatar anmolmittal1 avatar bwell-bruce avatar cdukebwell avatar darylcheung avatar dependabot[bot] avatar dominathan avatar drcate avatar gagan-chawla avatar hundley avatar imdrt avatar imranq2 avatar jaysonboyer avatar jd-webb avatar jgrasso2 avatar jonterrylee avatar joshcanbwell avatar justinpage-bwell avatar michaelrbooth avatar mintusah25 avatar nsittinger-bwell avatar rajanlal88 avatar robert-w avatar rosshosman avatar snyk-bot avatar sshah-asymmetrik avatar vaishali-3 avatar wscoble avatar zeevo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.