Use
Starting the Service
For validation against the 2026 MII Core Data Set IGs, use release v0.0.1-alpha.9 (Docker image tag 0.0.1-alpha.9). See Pre-configured Implementation Guides for the complete package list and the agreed microbiology and ICU version exceptions.
Blaze Profile (Default)
Start the FHIR Validator with the local Blaze terminology server:
docker compose up -dOntoserver Profile (Alternate)
Use the ontoserver profile by setting COMPOSE_PROFILES to ontoserver in .env before first start (else run a docker compose down before).
After that start the FHIR Validator with the MII Ontoserver via nginx proxy (requires client certificates in nginx/certs/):
docker compose up -dLoading Terminology Resources into Blaze
Release v0.0.1-alpha.9 uses MII terminology BOM 2026.8.25 for the 2026 CDS setup. See Terminology for the 2026 Release for the package and version.
After starting Blaze for the first time, upload the required MII terminology packages:
# Download terminology packages (CodeSystems, ValueSets)
./scripts/terminology/get-mii-terminology.sh install
# Wait for Blaze to be ready, then upload:
./scripts/terminology/upload-terminology.shWhen upgrading an existing checkout to this release, run ./scripts/terminology/get-mii-terminology.sh update before uploading the terminology again. This updates the locally generated package-lock.json to match the BOM version pinned in scripts/terminology/package.json.
Without this step, terminology-dependent validation (CodeSystem lookups, ValueSet bindings) will fail.
Validating a FHIR Resource
The validator exposes a single HTTP endpoint on port 8080.
Endpoint
POST http://localhost:8080/validateResourceHeaders
| Header | Values |
|---|---|
Content-Type | application/fhir+json or application/fhir+xml |
Accept | application/fhir+json or application/fhir+xml (optional, defaults to JSON) |
Example – JSON
curl -X POST http://localhost:8080/validateResource \
-H "Content-Type: application/fhir+json" \
-H "Accept: application/fhir+json" \
-d @patient-example.jsonExample – XML
curl -X POST http://localhost:8080/validateResource \
-H "Content-Type: application/fhir+xml" \
-H "Accept: application/fhir+xml" \
-d @patient-example.xmlThe validator returns an OperationOutcome resource with validation results.
Using a Custom HTTP Terminology Server
To connect to any HTTP terminology server, set TX_SERVER to an http:// URL. The container entrypoint script detects this at startup and automatically generates the required allowHttp configuration for that URL:
docker run -d -p 8080:8080 \
-e TX_SERVER=http://my-terminology-server:8080/fhir \
--network your-network \
ghcr.io/medizininformatik-initiative/mii-fhir-validator:0.0.1-alpha.9Loading Additional Implementation Guides
To load local IG packages from the igs/ directory, set IG_PARAMS in .env:
IG_PARAMS="-ig /igs/your-package-2026.0.0.tgz"For multiple IGs:
IG_PARAMS="-ig /igs/package1.tgz -ig /igs/package2.tgz"Offline Operation
The pre-built image contains the full FHIR package cache for all default MII IGs baked in at build time. This includes all IG dependencies. No internet access is required at runtime when using the default configuration.
SNOMED CT release files must still be present in snomed-ct-release/ for Blaze to start (see snomed-ct-release/README.md).
Custom IGs
If you add IGs beyond the defaults via IG_PARAMS, their dependencies will be resolved at startup and may require internet access. To pre-cache them, run the validator once while online:
docker compose up -d
# Wait for the validator to finish downloading packages:
docker compose logs -f validator
# Once ready:
docker compose downThe fhir-package-cache Docker volume persists the cache across container restarts and will be available for subsequent offline use.