Connecting lab analysers over HL7 and ASTM
By Vidhyasagar, Developer, Quantzi Infotech on . 2 min read.
To connect a lab analyser, it must send results over a standard protocol (HL7 v2 or ASTM), the sample tube must carry the same ID the lab order has, and each of the analyser’s test codes must be mapped to a test in the system. With those three in place, a result arrives on the right patient without being typed, and a result that cannot be matched waits for a person instead of guessing.
1. Find out what your analyser speaks
Check the analyser’s interface manual or ask the supplier’s engineer. Most current chemistry and haematology analysers send HL7 v2 or ASTM. Some laboratory systems also send FHIR. If the analyser can only print, it cannot be connected, and results will still need entering by hand.
2. Make the sample ID the order number
Results are matched to an order by the sample ID the analyser reports. If the barcode on the tube is the lab order’s number, a result matches automatically. If the analyser reports its own internal number instead, nothing can match it, so this is the setting to get right first.
3. Map the analyser’s test codes
An analyser calls haemoglobin whatever its manufacturer chose. Each device has its own list mapping those codes to tests, units and normal ranges, and optionally critical limits. A value beyond a critical limit is flagged as critical even when the analyser did not flag it.
4. Decide who watches the unmatched queue
- One matching order: the result attaches to it.
- Several possible orders: the result waits, with the candidates listed, for a technician to choose.
- No matching order: the result waits as unmatched. It is never attached to a patient by guesswork.
Every result is also kept exactly as the analyser sent it, alongside the interpreted value, so a disputed result can always be checked against the original message.
Before go-live
- Run a known control sample and confirm the value, unit and flag match the analyser’s own screen.
- Run one sample with a deliberately wrong ID and confirm it lands in the unmatched queue.
- Agree who checks that queue, and how often.