All articles
Integrations

How to Document an HL7 Interface (Template + Checklist)

A practical template and checklist for documenting an HL7 interface — what to capture, why it matters, and how to keep it from going stale.

By Radinode·August 10, 2026·2 min read
Share
How to Document an HL7 Interface (Template + Checklist)

Ask any healthcare integration engineer where their interface documentation lives and you'll usually get an uncomfortable pause. It's in a spreadsheet. It's in a Word doc from three interfaces ago. It's in someone's head — and that someone is on vacation.

Interface documentation is the first thing everyone agrees is important and the first thing that gets skipped under deadline pressure. This post gives you a concrete template and checklist so it stops being an afterthought.

Why HL7 interface documentation matters

  • Key-person risk. If one engineer holds the details of how your ADT feed maps to your EHR, their departure is an outage waiting to happen.

  • Faster troubleshooting. When a message fails at 2am, good documentation is the difference between a five-minute fix and a five-hour investigation.

  • Onboarding. New interface analysts get productive in days, not months, when the existing interfaces are actually written down.

  • Vendor and audit conversations. Clear documentation makes every external conversation — with the EHR vendor, the lab, the auditor — dramatically shorter.

What to capture: the checklist

For every interface, document:

1. The endpoints

  • Source system and destination system (name, version, owner)

  • Connection details: protocol (MLLP, TCP, file, API), host/port concept — never put secrets in documentation

  • Environment: production vs test

2. The message profile

  • Message types (ADT^A01, ORM^O01, ORU^R01, etc.)

  • HL7 version (2.3, 2.5.1, etc.)

  • Trigger events and expected volume

3. The mapping

  • Field-level mappings: which source segment/field maps to which destination segment/field (e.g. MSH-4 to facility code)

  • Transformations and value translations (code sets, defaults, formatting)

  • Filtering rules: which messages are dropped or routed differently

4. The operational details

  • Acknowledgement mode (original vs enhanced, when ACK/NAK is sent)

  • Error handling and retry behavior

  • Alerting: who gets notified when it breaks

5. The context

  • Why this interface exists (the clinical or business reason)

  • Known quirks and gotchas

  • Change history

A simple template

Interface: [Source] -> [Destination]
Purpose: [one line]
Owner: [team/person]

Endpoints
  Source:      [system, version]
  Destination: [system, version]
  Protocol:    [MLLP/TCP/file/API]  Environment: [prod/test]

Messages
  Types:   [ADT^A01, ...]
  Version: [2.5.1]
  Volume:  [~N/day]

Mapping
  [source field] -> [destination field]  | [transformation notes]
  ...

Operations
  ACK mode:       [...]
  Error handling: [...]
  Alerting:       [...]

Notes / gotchas
  - ...

The real problem: keeping it up to date

The hard part isn't writing documentation once — it's keeping it in sync as the interface changes. Documentation that lies is worse than no documentation.

This is exactly why we built Radinode. Instead of maintaining a separate document that drifts from reality, you map the integration once as a visual workflow — endpoints, message types, field mappings, transformations — and Radinode generates the technical guide as a clean PDF automatically. Change the workflow, regenerate the guide. It also exports Mirth-ready artifacts and HL7/FHIR from the same source of truth, so your documentation and your implementation never diverge.

If you're documenting interfaces by hand today, see how Radinode does it in minutes.

Written by the Radinode team
Share

Related articles