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 pre-cached at build time. Refer to the list of IGs here:
validator/Dockerfile—ARG IG_LISTdefines the IGs baked into the image.env.default—IG_PARAMSdefines the default IGs loaded at runtime viadocker-compose.yml