A testing suite for validating FHIR servers against the Smart Health Checks Implementation Guide. This project is built on the Inferno testing framework and provides automated tests to ensure compliance with the Smart Health Checks IG.
Smart Health Checks Inferno is designed to validate FHIR servers that implement the Smart Health Checks Implementation Guide. It tests various FHIR resources including:
- Patient
- Practitioner
- Encounter
- Observations (e.g., Blood Pressure, Body Height, Body Weight, Heart Rate, Heart Rhythm, Head Circumference, Waist Circumference, Pathology Result, Smoking Status)
- Questionnaire Responses
- Conditions
- Immunizations
- Medication Statements
- Allergy Intolerances
The test suite validates resource conformance, search capabilities, and reference resolution according to the implementation guide specifications.
- Install Docker and Docker Compose.
- From the project root, run:
make setup make run
- Open http://localhost/ in your browser.
-
Clone the repository:
git clone https://github.com/aehrc/smart-health-checks-inferno.git cd smart-health-checks-inferno -
Set up the project:
make setup
This command will:
- Pull the necessary Docker images
- Build the project
- Run database migrations
Start the application:
make runThis will build and start all the necessary services. Once running, you can access the application at http://localhost.
To stop services:
make stopTo remove containers:
make downTo generate or regenerate test files from the implementation guide (for local development):
make generate_localNote: The Docker-based target make generate is intended for maintainers and may rely on internal tooling. For most contributors, use make generate_local.
To run the test suite:
make testsTo check code style:
make rubocopTo automatically fix code style issues:
make rubocop-fixTo stop, rebuild, and restart the application with freshly generated files for local development, run:
make stop
make down
make generate_local
make setup
make runNote: The convenience target make full_develop_restart uses the Docker-based generator and may rely on maintainer-only tooling. If it fails, use the sequence above.
The project configuration is stored in config.json. Key configuration options include:
- Implementation Guide (IG) details
- Terminology server URL
- Profile configurations
- Resource configurations
At runtime, the terminology server URL is also configurable via the TX_SERVER_URL environment variable in compose.yaml (defaults to https://tx.dev.hl7.org.au/fhir). You can override it by creating a Docker Compose override file or by editing compose.yaml.
lib/smart_health_checks_test_kit/: Main test kit codegenerated/: Generated test files based on the implementation guideigs/: Implementation Guide packages and related files used by the validator
The project uses several Docker services:
inferno: The main applicationinferno-worker: Background worker using Sidekiqvalidator-api: Dockerized official validator wrappernginx: Web server that proxies requestsredis: Used for caching and background job queuingpostgres: Database for storing test results
This project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.