Skip to content
This repository has been archived by the owner on Nov 7, 2023. It is now read-only.

HL7 FHIR At Scale Taskforce (FAST) reference implementation server for UDAP Security and Identity Matching implementation guides.

License

Notifications You must be signed in to change notification settings

HL7-FAST/identity-matching-server

Repository files navigation

UDAP Security and Identity Matching Server

This application is a FHIR reference implementation server for the security and identity matching implementation guides.

By default OAuth2 and UDAP security is currently disabled.

This project uses git submodules

Dependencies

Quickstart

# make sure you have meteor 2.x installed
npm install -g meteor

# clone repository & submodule
git clone https://github.com/HL7-FAST/identity-matching-server.git --recursive
cd identity-matching-server
git submodule update --init --recursive  # for older versions of git

# install libraries
npm ci

# launch server
meteor run --settings configs/settings.nodeonfhir.localhost.json

# now open http://localhost:3000/ to make sure its runnning

# seed database with fixtures/patient
bundle install
bundle exec rake seed

# query match endpoint
# this uses the very handy http command from https://httpie.io/
http POST "localhost:3000/baseR4/Patient/\$match" "accept:application/fhir+json" @fixtures/parameters/example1.json

Git Submodule development

To pull updates for submodule:

  1. git pull && git submodule update --init --recursive

To push submodule updates:

  1. cd packages/identity-matching
  2. git add --all
  3. git commit -m "[my commit message]"
  4. git push
  5. cd ../..
  6. git add --all
  7. git commit -m "[updates submodule]"
  8. git push

Server Routes

Here are the key endpoints available on the server, where [] denotes HTTP body in FHIR JSON:

GET /                                     # => renders html home page
GET /metadata                             # => fhir capability statement
GET /baseR4/metadata                      # => same exact capability statement
GET /baseR4/Patient                       # => fhir bundle of all patients
GET /baseR4/Patient/1                     # => fhir patient with id 1
POST /baseR4/Patient [fhir patient]       # => create patient
DELETE /baseR4/Patient/1                  # => delete patient with id 1
POST /baseR4/Patient/$match [fhir params] # => preform match operation

How it works:

This application is MeteorJS app with builtin FHIR support and Rake for tooling. The rake seed command creates all FHIR patients in fixtures/patients/ in database. The file fixtures/parameters/example1.json is the POST body for an example /baseR4/Patient/$match call. File packages/identity-matching/FhirServer/Core.js actually implements the server in NodeJS, with full Patient RESTful CRUD support. All the functionality for $match is modularized into packages/identity_matching, which is a git submodule and MeteorJS Atmosphere package. The file configs/settings.nodeonfhir.localhost.json controls security features such as enabling OAuth2. OAuth2 is disabled by default.

Rake tooling

We included the following rake commands to help development, which requires Ruby and bundler to use:

Run bundle install to setup rake once.

bundle exec rake --tasks                          # => list all tasks
bundle exec rake seed                             # => populate server with all FHIR resources in fixtures/patients/
bundle exec rake seed:bundle[path/to/fhir/bundle] # => populate server with all Patient resources in a give FHIR Bundle JSON file
bundle exec rake drop                             # => delete all Patients on server

Run on Docker

You can access our cross-platform Docker image via:

# Make sure you are running Docker daemon
docker login ghcr.io
# Enter GitHub username and PAT
docker pull ghcr.io/hl7-fast/identity-matching-server:development

Note For Windows Users

In order to run this application, you will need to have installed node versions 14.0 and lower.

Important Links

Technology Stack

StackShare

About

HL7 FHIR At Scale Taskforce (FAST) reference implementation server for UDAP Security and Identity Matching implementation guides.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Languages