Skip to content

Latest commit

 

History

History
60 lines (52 loc) · 2.79 KB

File metadata and controls

60 lines (52 loc) · 2.79 KB

Implementation Details

Implementation follows the use case described in the documentation to prove the following functionality:

  1. OAuth2 Authorization for a Provider Smart App.
  2. Delegation of an OAuth token to a CDS-Hooks service via a CDS-Hook request.
  3. Patient Matching
  4. Querying of Patient data from a Payer system
  5. Import Data selection
  6. Persistance of Patient data via a Capability Statement
  7. Storing unsupported record data as a DocumentReference

Some functionality is out of scope in this implementation but might be implemented in the nearest future:

  1. Provider App needs a FHIR Server URL and Application ID at a start time. We are using spring-security-oauth2-autoconfigure plugin and did not focus on extending the default functionality much, since that was enough for a proof of concept.
  2. Provider and Payer FHIR Servers follow the R4 spec only.
  3. CDS-Hooks Service can connect to a Payer FHIR Server only through an open endpoint.

Sources

Deploy

All Apps are automatically deployed to Heroku:

Docker

NOTE: We are migrating to gradle build system so docker files are not up to date yet.

Both apps can be easily deployed in a Docker container. Provide Payer CDS-Hooks Service configuration:

export PAYER_FHIR-SERVER-URI: ...
export PATIENT-DATA-IMPORT_SMART-APP-URI: ...
  • PAYER_FHIR-SERVER-URI: FHIR server open endpoint for payer data
  • PATIENT-DATA-IMPORT_SMART-APP-URI: Link to Provider Smart App for Data Import returned in a CDS Hook Card

Provide Provider Smart App configuration:

export PROVIDER_FHIR_SERVER_URI=...
export PAYER_CDS_HOOK_URI=...
export SECURITY_OAUTH2_CLIENT_CLIENT_ID=..
  • PROVIDER_FHIR_SERVER_URI: FHIR server secured endpoint for Patient data
  • PATIENT-PAYER_CDS_HOOK_URI: CDS Hook Service URI
  • PATIENT-SECURITY_OAUTH2_CLIENT_CLIENT_ID: App client ID from HSPC Sandbox

To start run the following command:

docker-compose up --build

--detach is optional To change application properties (e.g. Fhir Server URL in a Payer app) stop Docker container, set the corresponding configuration property, and start it back:

docker-compose stop payer-cds-hooks-service
export PAYER_FHIR_SERVER_URI=another value
docker-compose up  --detach payer-cds-hooks-service

Try It