nutsfoundation/nuts-demo-ehr

Sponsored OSS

By Nuts Foundation

Updated almost 2 years ago

Image
Security
Integration & delivery
0

100K+

nutsfoundation/nuts-demo-ehr repository overview

Please note that this project is currently a work in progress. Not everything will fully work yet

Nuts demo EHR system

This application is pretending to be an electronic health record system. You can use it to demo how healthcare professionals can work together by sharing information with colleagues through the Nuts nodes.

Also, you can use it as "the other party" in implementing Nuts in your own EHR systems. We gave a live demo of this application in one of our meetings, which you can see here (in Dutch).

NOTE THAT THIS APPLICATION IS NOT INTENDED FOR USE WITH REAL MEDICAL INFORMATION! IT IS IN NO WAY DEVELOPED TO BE SAFE, STABLE OR EVEN USABLE FOR SUCH PURPOSE.

Quick start guide

git clone [email protected]:nuts-foundation/nuts-demo-ehr.git
cd nuts-demo-ehr
npm install
npm start

Note that it needs a running redis server for session persistence. You can start one by running a docker node:

docker run -p 127.0.0.1:6379:6379 --rm --name demo-ehr-session-redis redis

You should now have three instances of this EHR running on:

Also, as a bonus, you can display two or all three side by side by going to:

Configuring the application(s)

You can find the configuration files for all three applications in the config directory. You may need to edit these files to point to the right Nuts node(s). If you start the local development network using make in https://github.com/nuts-foundation/nuts-node/tree/master/development, http://localhost:8000 (Verpleeghuis de Nootjes) will connect to node1 and the other two will connect to node2.

You can also change port numbers, organisation details and default health records in the config files.

Configuring the Nuts node
IRMA

You'll need to change a few things in the Nuts node config if you want to use the IRMA flows. In the nuts-node/development/nuts.yaml you will need to specify the public URL that both your browser and your phone can connect to the Nuts node on. So this can be something like:

auth:
  publicurl: http://192.168.1.xx:11323

Or you can use a service like ngrok to proxy requests to your local machine.

You may also want to set the IRMA scheme manager to irma-demo to allow you to test using demo attributes:

auth:
  irma:
    schememanager: irma-demo
NATS events

In order to receive consent events from the Nuts node you will have to allow the demo EHR to talk to NATS. You do this by adding these port forwards to nuts-network-local/docker-compose.yml:

bundy-nuts-service-space:
  ...
  ports:
    - "11323:1323"
    - "11324:4222" # <-- Add this
  ...
dahmer-nuts-service-space:
  ...
  ports:
    - "21323:1323"
    - "21324:4222" # <-- Add this
  ...

You will need to restart your Nuts nodes to enable these changes.

Learning from this application

If you're curious as to how this application interfaces with the Nuts node, please take a look at resources/nuts-node, where we define the different services and API calls that the Nuts node exposes. For examples on how we then use those services, you can check out the client APIs that the browser talks to to get things done. Mainly consent.js and organisation.js. Also, we register our applications on the Nuts node in the root index.js.

Tag summary

Content type

Image

Digest

sha256:4fed417a7

Size

11.5 MB

Last updated

about 3 years ago

docker pull nutsfoundation/nuts-demo-ehr

This week's pulls

Pulls:

271

Jul 27 to Aug 2