Insights

MSH-9 is the field that tells every downstream system what kind of message this is. Misread it and you route an outpatient register like an inpatient admit — or NAK a perfectly good ADT because the structure name is wrong.

Three components, one field

In HL7 v2.5.1, MSH-9 is data type MSG with three components:

  1. Message code (Table 0076) — the family, e.g. ADT, ORM, ORU, SIU, ACK.
  2. Trigger event (Table 0003) — the real-world event, e.g. A01 (admit), A04 (register), A08 (update).
  3. Message structure (Table 0354) — the abstract message name the payload must follow, e.g. ADT_A01.

Example from Penford Medical Center:

MSH|^~\&|PENEHR|PMC|HARBORENGINE|PMC|20261015120000-0400||ADT^A04^ADT_A01|PMC-ADT-151200|P|2.5.1

That is an ADT of trigger A04 built on structure ADT_A01. Sources: HL7 v2.5.1 product brief (Control / Chapter 2 field definitions); see also our MSH field guide.

Why A04 still says ADT_A01

Several ADT triggers share one structure. In v2.5.1, A01, A04, and A08 (among others) commonly use ADT_A01. A02 (transfer) uses ADT_A02. A13 (cancel discharge) often rides ADT_A01 again. The trigger tells you *what happened*; the structure tells you *which segment pattern* to parse. If a partner sends ADT^A04^ADT_A04, many engines reject it as an unknown structure even though the event is fine.

Practical habits for analysts

  1. Parse all three components — never stop at ADT^A04.
  2. Match the structure name to your channel’s allowed list before you blame the PID.
  3. On unsupported type/trigger, expect an AR with table 0357 code 200 (unsupported message type) — see error lookup and What an HL7 ACK really tells you.
  4. Keep MSH-9 in sync when you clone a sample: changing A01→A08 without the right structure is a classic Penford lab ticket.

Quick map (common ADT)

A01Admit / visit notificationADT_A01
A04Register a patientADT_A01
A08Update patient informationADT_A01
A02Transfer a patientADT_A02
A03Discharge / end visitADT_A03

Exact event and structure pairings are defined in the v2.5.1 chapters for Patient Administration (Chapter 3) and the Control tables — always confirm against the partner’s interface spec, not memory alone.

Paste a sample into the free HL7 viewer to see MSH-9 broken into components with Insights.

Keep practicing — free HL7 viewer and FHIR viewer with Insights, or the Sandbox.
Academy previewFree Sandbox