Healthcare integration · 21 July 2026 · 6 min read

What a good HL7 interface specification looks like

Most painful integrations aren't hard because HL7 is hard — they're hard because nobody wrote down what the interface should do. A good spec is the cheapest insurance you can buy.

Message types and trigger events

List exactly which messages flow and when: ADT^A01 on admission, ORU^R01 for results, and so on. Ambiguity here is where projects slip.

Segment and field mappings

For each message, specify the segments and fields you use, their data types, whether they're required, and the code sets — with a clear source-to-target mapping. This table is the heart of the spec.

Real, de-identified sample messages

Include actual example messages, not just the schema. One realistic sample surfaces more issues than a page of prose, and gives both sides something concrete to test against.

Acknowledgements and error handling

Define ACK/NAK expectations, retry behaviour, and what happens when a message fails validation. "What do we do with a bad message?" should never be answered for the first time in production.

Connection and transport details

MLLP host and port, or SFTP paths; TLS requirements; timeouts and keep-alives. The boring details are what make go-live smooth.

A testing plan and sign-off

Enumerate the test cases, including the edge cases, and name who signs off. A spec without a test plan is a wish list.

Version it

Interfaces change. Keep the spec in version control with a changelog so both teams always know which version is live.


Working on something similar? We build and run these systems for healthcare and software teams. Talk to an engineer →