Setting up Development
To run this project locally for development, the following steps need to be followed:
- Download FHIR Validator JAR
- Add SNOMED CT release files
- Download MII terminology packages
- Configure environment
- Start services
Prerequisites
- Docker and Docker Compose
- A SNOMED CT International Edition release (downloadable from e.g. https://www.nlm.nih.gov/healthit/snomedct/)
Step 1: Download the FHIR Validator JAR
./validator/download-validator.shThis downloads validator_cli.jar into the validator/ directory.
Step 2: Add SNOMED CT Release Files
Download the SNOMED CT International Edition and extract the release package into the snomed-ct-release/ directory. The directory should contain a subdirectory named SnomedCT_InternationalRF2_PRODUCTION_<date>/.
See snomed-ct-release/README.md for detailed instructions.
Step 3: Download MII Terminology Packages
./scripts/terminology/get-mii-terminology.sh installThis downloads the CodeSystems and ValueSets needed for MII validation into a local directory for later upload to Blaze.
Step 4: Configure Environment
cp .env.default .env
# Optionally edit .env to customise settingsDocker Compose reads .env automatically. The .env.default file contains sensible defaults and is tracked in git; .env is gitignored for local customisation.
Step 5: Start Services
docker compose --profile blaze up -dThis starts:
- validator – FHIR Validator on port
8080 - blaze – Blaze terminology server on port
8082
Step 6: Upload Terminology to Blaze
Wait for Blaze to report as healthy, then upload the terminology resources:
./scripts/terminology/upload-terminology.shAccessing the Services
| Service | URL |
|---|---|
| FHIR Validator API | http://localhost:8080 |
| Blaze FHIR Terminology Server | http://localhost:8082 |
Building the Docker Image Locally
To build the validator image from source instead of pulling from GHCR:
cd validator
./download-validator.sh
cd ..
docker compose build validatorOr uncomment the build: section and comment out the image: line in docker-compose.yml for the validator service.
MII Ontoserver Profile (Development with mTLS)
To develop against the MII Ontoserver instead of local Blaze:
- Place decrypted client certificates in
nginx/certs/:bashcp /path/to/client-cert.pem nginx/certs/ openssl rsa -in encrypted-key.key -out nginx/certs/client-key.key - Update
.env:TX_SERVER="http://nginx/fhir" - Start with the ontoserver profile:bash
docker compose --profile ontoserver up -d
IMPORTANT
The MII Ontoserver must only be used for development purposes (a small number of validations, no personal/patient data). See Configuration for the full usage policy.