Giter Club home page Giter Club logo

fhir-marshal's Introduction

fhir-marshal

The FHIR-Marshal is a light-weight and easy-to-configure validation service for HL7© FHIR Resources. The Marshal is based on Spring Boot and can validate against the FHIR base profiles and can query custom profiles from a FHIR Server. In addition, a Terminology server can be connected to validate used codes.

Exemplary deployment

A deployment of FHIR-Marshal might look like this:

                                                                                ┌──────────────┐
                                                   ┌─────────────────┐          │ FHIR Marshal ├─────┐
                                                   │ validation      │  ┌──────►│              │     │
                                  ┌───────────────►│ result store    │  │       └──────────────┘     │
                                  │                │ (e.g. logstash) │  │                            │
                                  │                └─────────────────┘  │       ┌──────────────┐     │   ┌──────────────────────┐
                                  │                                     ├──────►│ FHIR Marshal ├─────┼──►│ Structure Server     │
┌─────────────────┐       ┌───────┴─────────┐      ┌─────────────────┐  │       │              │     │   │ profile allowlisting │
│ source system   │       │     Plumbing    │      │ Load balancer   ├──┤       └──────────────┘     │   └──────────────────────┘
│ (speaking FHIR) ├──────►│ (forward CRUD,  ├─────►│ (e.g. nginx)    │  │                            │
└─────────────────┘       │  validate some) │      └─────────────────┘  │       ┌──────────────┐     │
                          └────────┬────────┘                           ├──────►│ FHIR Marshal │     │
                                   │                                    │       │              ├─────┤   ┌──────────────────────┐
                                   │                                    │       └──────────────┘     ├──►│ Terminology server   │
                                   │                                    │                            │   │ supports validator   │
                                   │                                    │       ┌──────────────┐     │   └──────────────────────┘
                                   │                                    └──────►│ FHIR Marshal │     │
                                   │                                            │              ├─────┘
                                   │               ┌─────────────┐              └──────────────┘
                                   │               │ target FHIR │
                                   └──────────────►│ server      │
                                                   └─────────────┘

Plumbing the validation into your overall infrastructure is your own responsibility.

Configuration.

To connect to the external server, the base URL needs to be added to the application.yml:

fhir:
  remote-structure-servers: 
    structure01:
      url: "https://fhir.itcr.uni-luebeck.de/fhir/"
      override-retrieve-only-active-profiles: false
    structure02:
      url: "https://other-fhir.itcr.uni-luebeck.de/fhir"
      override-page-size: 25
      auth-user: "username"
      auth-password: "password"
      
  remote-terminology-servers: 
    term01:
      "https://terminology.itcr.uni-luebeck.de/fhir/"

Deployment

The FHIR-Marshal can execute as a Java Jar or as a Docker Container. The existing docker-compose file comes with a NGINX as a load balancer and two FHIR-Marshal instances for a scaling validation.

Single Instance using Java Jar
gradle bootJar
java -jar build/libs/fhir-marshal.jar
Scaling Validation using Docker-compose
docker-compose up

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.