Resources / Guidance
Which test kit do I need?
Each test kit targets one HL7 AU implementation guide. Pick the one that matches what your system does.
| You have ... | Use | Inferno will ... |
|---|---|---|
| A FHIR server that other systems query for patient, clinical or provider data | AU Core Test Kit | Act as an AU Core client: run the required searches against your endpoint and validate every resource returned. |
| A patient summary document (a Bundle), or a server that serves or generates one | AU PS Test Kit | Validate the Bundle, its Composition sections and referenced resources against AU Patient Summary 1.0.0. |
If your system is a client (it consumes data from an AU Core server), these kits do not test it directly. Use the public AU Core test server as a conformant counterpart to develop against, and raise client-testing needs in the feedback channel below.
Running a test session
Inferno organises tests into a suite (one IG version), made of groups (one profile, or one way of obtaining a document), made of individual tests. You run groups; each test inside reports its own result.
- Create a session. On the test kit page choose the IG version and click Create Test Session. The URL of the session is unique and shareable. Keep it: it is how you show a reviewer what happened, and how you re-open the run later.
- Pick a group. The left panel lists the groups. Click one to see its tests and the description of what it checks. You rarely need to run the whole suite while you are fixing things.
- Run and supply inputs. Click Run Tests. Inferno asks only for the inputs that group needs (an endpoint, patient ids, a pasted Bundle, credentials). Inputs are remembered for the rest of the session.
- Watch it run. Tests execute in order. Groups that depend on an earlier result (for example, Must Support checks depend on a successful search) wait for it.
- Read the results, fix, re-run. Re-running a group replaces its previous results in the same session.
Sessions on this public service are periodically purged. Download or screenshot anything you need to keep. The Report button in the session header produces a printable summary of the run.
Reading results
Each test ends in one state:
| Pass | The assertion held. |
| Fail | The assertion did not hold. Open the test: the Messages tab has the validator or search finding, the Requests tab has every HTTP request and response involved. |
| Skip | The test could not run because a precondition was missing, usually no resources were returned by an earlier search, or an input was empty. Fix the cause upstream and re-run. |
| Omit | The test does not apply, for example a search parameter your CapabilityStatement says you do not support. Not a problem. |
| Error | Something unexpected happened (connection refused, malformed response, a bug in the test). If your server was reachable, report it with the session URL. |
Warnings and information messages can appear on a passing test. Warnings flag things the IG says SHOULD be done, or patterns the community discourages. They do not fail the test but are worth reading before a test event.
Validator messages name the element path (for example Bundle.entry[3].resource.code) and the profile rule that was broken. Messages are grouped per resource, so a single missing terminology binding on twenty Observations shows as twenty lines with the same cause.
A group with SHALL tests passing and SHOULD or MAY tests failing is often acceptable; the test title states the conformance level.
Test data and public servers
Never send real patient data to this service. It is a public reference instance with no protections for personal or health information. Use synthetic data throughout.
- HL7 AU FHIR test data: synthetic patients and supporting resources designed to exercise every Must Support element in AU Core. Load these on your server before testing so the Must Support checks have something to find.
- Public AU Core test server: a hosted FHIR server preloaded with the test data. The AU Core kit inputs default to it, so you can run a passing session before touching your own endpoint. It is for testing only, not production.
- The AU PS IG examples and AU Core IG examples are also valid inputs for a first run.
- Terminology is validated against tx.dev.hl7.org.au, the HL7 AU terminology server loaded with the code systems and value sets the IGs use.
Preparing for a connectathon or test event
Most time lost at a test event is spent on things that can be checked the week before:
- Your endpoint is reachable over HTTPS from outside your network. Try it from a phone off the office wifi.
- You know how Inferno will authenticate: an open endpoint, a long-lived bearer token, or a fixed header. Have the token ready.
- Synthetic test data is loaded and you have the patient ids (and any practitioner, organisation, location ids) written down.
- You have run the relevant kit once against your system and read the failures, so you arrive with a known baseline rather than a first run.
- You know which IG version you are claiming. Test against that suite, not the newest one.
During the event, keep the session URL for each run and share it when you ask for help. A reviewer can open it and see exactly what was sent and received.
Run a test kit locally
Run a kit on your own machine when your server is not reachable from the internet, when you want to test with data you cannot share, or to wire the tests into your own CI. Each kit ships with a Docker setup.
Prerequisites: Docker with at least 10 GB of memory allocated. The first start downloads and warms the FHIR validator, so allow 5 to 10 minutes.
- Clone the kit: hl7au/au-fhir-core-inferno or hl7au/au-ps-inferno.
- In the repository directory run
make setup(installs dependencies, initialises the database), thenmake run. - Open http://localhost. The kit is on the home page.
Each README also documents the validator configuration and how to drive the tests from the Inferno API for automation.
Get help and give feedback
- Ask a question or report a suspect result: the Inferno Test Kit feedback and queries topic in the #australia channel on chat.fhir.org. Include the session URL.
- Report a bug or request a test: open an issue in au-fhir-core-inferno or au-ps-inferno.
- Join the conversation: the fortnightly HL7 AU Infrastructure and Tooling community meeting triages issues and discusses test coverage.
- Questions about Inferno itself: the #inferno channel on chat.fhir.org.
Build your own tests
Both kits are open source and built on the Inferno Framework. To extend them, or write a kit for another IG, start with:
- Inferno documentation
- Writing tests
- Inferno Core API documentation
- Inferno Suite Generator, which produces the AU Core suites from an IG package