Overview
Purpose
This repository publishes a Docker image of the HL7 FHIR Validator CLI pre-configured for the Medical Informatics Initiative (MII). The image contains only the validator and the pre-cached MII IGs. A terminology server must be provided separately and pointed to via the TX_SERVER environment variable.
The published image provides:
- The FHIR Validator CLI exposed as an HTTP service
- Pre-configured and pre-cached MII Implementation Guides
- HTTP terminology server support (
allowHttpauto-configured fromTX_SERVER) - Configurable via environment variables (
TX_SERVER,IG_PARAMS,JAVA_OPTS, …)
This repository also provides a docker-compose.yml as a convenience setup for local development and offline use. It bundles a Blaze FHIR server as a local terminology service, and an optional nginx reverse proxy for authenticated access to the MII Ontoserver.
In short: run the published image standalone if you already have a terminology server. Use
docker composefrom this repo if you need a complete local setup.
Architecture
The docker-compose.yml in this repository offers two deployment profiles:
Blaze Profile (Default – Local Development)
The validator runs alongside a local Blaze FHIR server that acts as the terminology service. Blaze is loaded with LOINC and SNOMED CT support and communicates with the validator over plain HTTP inside the Docker network.
┌─────────────────────────────────────────────────┐
│ Docker Network (fhir-network) │
│ │
│ ┌──────────────────┐ HTTP ┌───────────┐ │
│ │ FHIR Validator │ ──────────► │ Blaze │ │
│ │ :8080 │ TX calls │ :8080 │ │
│ └──────────────────┘ └───────────┘ │
│ ▲ (→ host:8080) (→ host:8082) │
└─────────┼───────────────────────────────────────┘
│ POST /validateResource
Client (localhost:8080)
│ [Blaze FHIR API also accessible at localhost:8082]Ontoserver Profile (MII SU-TermServ)
The validator connects to an nginx reverse proxy that authenticates to the MII SU-TermServ (ontoserver.mii-termserv.de) using mTLS client certificates.
┌──────────────────────────────────────────────────────────────┐
│ Docker Network (fhir-network) │
│ │
│ ┌──────────────────┐ HTTP ┌───────────────────────┐ │
│ │ FHIR Validator │ ──────────► │ nginx (mTLS proxy) │ │
│ │ :8080 │ │ :80 │ │
│ └──────────────────┘ └───────────────────────┘ │
│ ▲ │ HTTPS + cert │
└───────────┼──────────────────────────────────┼───────────────┘
│ ▼
Client ontoserver.mii-termserv.dePre-configured Implementation Guides
The Docker image ships with a set of MII IGs and their dependencies pre-cached at build time.
Validating the 2026 MII Core Data Set
Use release v0.0.1-alpha.9 to validate against the 2026 MII Core Data Set (CDS / KDS) Implementation Guides. Pin the Docker image to this version to retain the 2026 package set when development moves to the 2027 IGs:
image: ghcr.io/medizininformatik-initiative/mii-fhir-validator:0.0.1-alpha.9For the 2026 release line, it was agreed to pre-apply the microbiology IG from the 2027 release line and keep ICU on its 2025 version. Accordingly, this validator release includes microbiology 2027.0.0-ballot2 and ICU 2025.0.4. These are intentional exceptions to the 2026 package versions. The consent IG is included at 2026.0.1-rc-4.
The following table lists all explicitly configured IG packages in v0.0.1-alpha.9; transitive dependencies are also cached in the image.
| Package | Version |
|---|---|
de.basisprofil.r4 | 1.5.4 |
de.medizininformatikinitiative.kerndatensatz.meta | 2026.0.0 |
de.medizininformatikinitiative.kerndatensatz.base | 2026.0.1 |
de.medizininformatikinitiative.kerndatensatz.laborbefund | 2026.0.3 |
de.medizininformatikinitiative.kerndatensatz.medikation | 2026.0.1 |
de.medizininformatikinitiative.kerndatensatz.consent | 2026.0.1-rc-4 |
de.medizininformatikinitiative.kerndatensatz.bildgebung | 2026.0.0 |
de.medizininformatikinitiative.kerndatensatz.biobank | 2026.0.1 |
de.medizininformatikinitiative.kerndatensatz.molgen | 2026.0.4 |
de.medizininformatikinitiative.kerndatensatz.onkologie | 2026.0.3 |
de.medizininformatikinitiative.kerndatensatz.patho | 2026.0.2 |
de.medizininformatikinitiative.kerndatensatz.icu | 2025.0.4 |
de.medizininformatikinitiative.kerndatensatz.dokument | 2026.0.1 |
de.medizininformatikinitiative.kerndatensatz.mikrobiologie | 2027.0.0-ballot2 |
de.medizininformatikinitiative.kerndatensatz.mtb | 2026.0.1 |
de.medizininformatikinitiative.kerndatensatz.pros | 2026.7.0 |
de.medizininformatikinitiative.kerndatensatz.seltene | 2026.0.1 |
The release configuration is recorded in:
validator/Dockerfileatv0.0.1-alpha.9—ARG IG_LISTdefines the IGs baked into the image..env.defaultatv0.0.1-alpha.9—IG_PARAMSdefines the default IGs loaded at runtime viadocker-compose.yml.
An existing .env file can override the image's default package set through IG_PARAMS. To use the 2026 set, align that variable with this release's .env.default, or leave it unset or empty to use the image defaults.
Terminology for the 2026 Release
Release v0.0.1-alpha.9 pins the MII terminology bill of materials (BOM) to 2026.8.25:
| Package | Version |
|---|---|
@mii-termserv/de.medizininformatikinitiative.kerndatensatz.terminology.bill-of-materials | 2026.8.25 |
The BOM selects the terminology packages downloaded for the local Blaze terminology server. It is configured separately from the IG package list in scripts/terminology/package.json at v0.0.1-alpha.9, using an exact version without a ^ range.
Terminology package versions are distinct from the IG versions above. For example, this BOM includes ICU terminology 2026.0.2-suts.2 and microbiology-2027 terminology 2027.0.0-alpha.5-suts.2; the configured IGs remain ICU 2025.0.4 and microbiology 2027.0.0-ballot2.
These terminology resources are downloaded and uploaded to Blaze separately from the validator image. Follow Loading Terminology Resources into Blaze to install them. The BOM does not configure an external terminology server such as the MII Ontoserver.