This bulk FHIR validation environment aggregates/groups and presents validation results of bulk FHIR validation of FHIR Search results
Go to file
2024-10-30 10:50:16 +01:00
home Fix initial range of progress bar if no custom limit 2024-09-30 15:40:42 +02:00
.env.example Initial commit 2024-09-08 23:35:23 +02:00
.gitignore Initial commit 2024-09-08 23:35:23 +02:00
bulk-fhir-validation.png Initial commit 2024-09-08 23:35:23 +02:00
bulk-fhir-validator.drawio.png Initial commit 2024-09-08 23:35:23 +02:00
docker-compose.yml By explicit usage of HAPI parameter PACKAGEURL the repository service is not a mock of packages.fhir.org anymore 2024-09-11 12:57:03 +02:00
download-packages.sh Initial commit 2024-09-08 23:35:23 +02:00
LICENSE Initial commit 2024-09-06 11:39:41 +02:00
README.md As an user you can but don't have to define search parameters 2024-10-30 10:50:16 +01:00

Table of Contents

Bulk FHIR validation

Dockerized Open Source environment for bulk FHIR validation of FHIR resources.

Aggregation and presentation of bulk validation results

This bulk FHIR validation environment aggregates/groups and presents validation results of bulk FHIR validation of FHIR Search results.

Bulk FHIR validation

Usage

Web UI

Access the web user interface of Jupyter Lab on the configured (default: 80) port: http://yourserver/

Login

Login with the initial password / token you configured in .env

Start validation

Now you can start the validation and aggregation of validation results.

Therefore run the Jupyter Notebook fhir-validation.ipynb.

Navigate validation results

You can navigate the validation results by "Table of Content" of Jupyter Lab. Therefore switch the left navigation bar from "File browser" to "Table of Contents".

User documentation

The further user documentation is embedded in the Jupyter Notebook:

The different outputs are described in markdown cells and used parameters are described in the code cells.

Select resources to be validated by FHIR Search parameters

You can select/filter the resources to be validated by additional FHIR search parameters.

For filter options you can set search_parameters, see FHIR search common parameters for all resource types, as well as additional FHIR search parameters for certain resource types like Patient, Condition, Observation, ...

Installation and configuration

Setup FHIR Packages

Download the FHIR NPM Packages of the German MII Core Dataset modules (Kerndatensatz der Medizininformatik Initiative) to the directory packages.

E.g. by running download-packages.sh:

bash download-packages.sh

If you want to use other FHIR packages, download the FHIR NPM packages to the packages directory and set them up by the environment variables of the HAPI validation service.

The environment variable names is derived from config section implementationguides in HAPIs application.yaml

Create config file

Copy .env.example to .env (so .env which will contain your credentials will be excluded from the git repo by .gitignore):

cp .env.example .env

Setup your FHIR server parameters

Edit .env and set up custom parameters like the URL for your FHIR Server.

Setup initial password for Jupyter Lab UI

Set a custom initial token in variable JUPYTER_TOKEN in .env

Start validation environment

Start the validation environment by

docker compose up -d

Software architecture

Based on open standards and powerful and flexible Open Source Software

The FHIR validation environment uses following standards and Open Source Software by the Python Library fhirvalidation.py:

Software architecture diagram

Visualization of the components and the deployment:

Software architecture

Python library

If you don't want to use Jupyter Lab as a user interface (e.g. if you want to generate markdown for CI/CD reports), you can use the Python library fhirvalidation.py returning a pandas dataframe independent from Jupyter Lab.

In the Jupyter Notebook, you can find documentation on how to use the library, including example with code snippets.