Interface Monitor

Watch a lab interface at work

A synthetic pathology feed arrives one message at a time. The gateway's own code processes each one here in your browser and answers with an HL7 acknowledgement: accepted, error or rejected. Stage a fault to see what breaks, how it shows up, and how you would track it down.

A simulationNo network connection is made. The gateway runs in this page; only the sending system is simulated.
Synthetic data onlyEvery patient and result here is made up, generated from a fixed seed.
Acknowledged on the gateway's own checksAs on a real interface. Official validation against AU Core is a separate step, shown on the Results page.

Live feed

Each message that arrives is answered with one of three replies from HL7's acknowledgement codes: AA accepted AE error AR rejected. Select a message to see what arrived and what the gateway sent back.

Loading the gateway in your browser…

Stage a fault

What each one means
Received0
Accepted (AA)0
Errors (AE)0
Rejected (AR)0
Waiting for patient0
Last message–

Messages

Newest first · simulated clock
Start the feed, or stage a fault above.

Message detail

Select a message to see it here.

Fault guide

Every fault you can stage, what it means, and how a support person would track it down. Each one is something that really goes wrong on lab and device interfaces. Message problems go through the real gateway code; network problems are simulated, because nothing real can be disconnected here. The same checks, with what to record, are in the support runbook (on GitHub).

Where this data comes from

Every patient here is made up. Nothing comes from real health records, de-identified or otherwise, and no sign-up or licence with personal information was needed to make it.

This page uses 106 messages from a synthetic population of 1,156 patients made by Synthea v3.4.0 (seed 20261019), 8 of them with a mistake planted on purpose, and 24 example files written by the project's own generator (seed 20261019).

DetailWhere it comes fromReal or made up
NamesPopulation random first and last names from Synthea (the numbers it adds to keep names unique are removed).
Examples a short fixed list of common names, such as CITIZEN or CHEN.
Made up
Date of birth and sexPopulation generated by Synthea's simulation.
Examples random, from a fixed seed.
Made up
Street addressPopulation Synthea's invented street names.
Examples a few generic street names, such as Smith St, that may exist somewhere but are not anyone's address here.
Made up
Suburb, postcode and stateReal Queensland place names and postcodes (public information), picked at random from a list of 26 (5 for the examples). No real person is attached to them.Real place name
IHI, Medicare number and MRNRandom digits with a correct check digit, so they pass the format rules. Real numbers come from the same ranges, so one can match a real person's number by chance; here it is only ever paired with made-up details, so it says nothing about that person.Random number
Test resultsPopulation simulated by Synthea, with its test codes (LOINC) and units kept exactly as generated.
Examples fixed sample values written into the example generator.
Made up
Lab and hospital namesDEMOLAB, DEMOLAB2, QLDDEMO and QLDDEMO2 are placeholders, not real organisations.Made up
MistakesPlanted on purpose by the project's fault injector, which keeps a list of every change it made.Made up

The generated population is not stored in the project; its automated checks rebuild it from the same pinned version and seed, so anyone can reproduce it exactly.

About this page

The feed starts with the project's example registrations, then a slice of the Synthea-generated feed the project tests at scale: each patient's registration followed by some of their lab reports, as a lab would send them.

The same code runs as a real listener on your own computer: python -m gateway listen waits on this computer only (port 2575, HL7's registered port), and python -m gateway send sends files to it and prints each acknowledgement. See the README.