HL7 ADT Message: Event Types & Structure
HL7 ADT (Admit, Discharge, Transfer) messages are the most widely used HL7 v2 message type, handling patient movement and registration events across healthcare facilities. Every hospital runs ADT interfaces — they are the backbone of patient census, bed management, and downstream system synchronization.
What is an HL7 ADT message?
Section titled “What is an HL7 ADT message?”An HL7 ADT message is the message type that communicates patient administration events — admissions, discharges, transfers, registrations, and demographic updates. A single ADT message code carries dozens of distinct trigger events (A01 through A44), each identifying a specific event in the EVN and MSH-9 fields. Downstream systems use ADT feeds to stay synchronized with the patient census.
ADT Message Structure
Section titled “ADT Message Structure”A typical ADT message contains these segments in order:
| Segment | Name | Required | Purpose |
|---|---|---|---|
| MSH | Message Header | Yes | Sender, receiver, message type, version |
| EVN | Event Type | Yes | Trigger event code and timestamp |
| PID | Patient Identification | Yes | MRN, name, DOB, demographics |
| PD1 | Additional Demographics | No | Primary care provider, living will |
| PV1 | Patient Visit | Yes | Patient class, location, attending MD |
| PV2 | Patient Visit (Additional) | No | Expected length of stay, admit reason |
| NK1 | Next of Kin | No | Emergency contacts (repeating) |
| IN1 | Insurance | No | Primary/secondary payer information |
| IN2 | Insurance (Additional) | No | Extended insurance details |
| GT1 | Guarantor | No | Guarantor demographics and employer |
| AL1 | Allergy | No | Patient allergies (repeating) |
| DG1 | Diagnosis | No | Diagnosis codes (repeating) |
ADT Event Types
Section titled “ADT Event Types”HL7 v2 defines over 40 ADT trigger events. These are the most commonly implemented:
Patient Movement Events
Section titled “Patient Movement Events”| Event | Name | Description |
|---|---|---|
| A01 | Admit/Visit Notification | Patient admitted as inpatient or begins an encounter |
| A02 | Transfer a Patient | Patient moved from one location to another |
| A03 | Discharge/End Visit | Patient discharged from facility |
| A04 | Register a Patient | Outpatient or emergency registration |
| A05 | Pre-Admit a Patient | Future admission scheduled |
| A06 | Change Outpatient to Inpatient | Patient class change |
| A07 | Change Inpatient to Outpatient | Patient class change |
| A11 | Cancel Admit | Reversal of A01 |
| A12 | Cancel Transfer | Reversal of A02 |
| A13 | Cancel Discharge | Reversal of A03 |
Patient Information Events
Section titled “Patient Information Events”| Event | Name | Description |
|---|---|---|
| A08 | Update Patient Information | Demographics or visit data changed |
| A28 | Add Person Information | New person record (not visit-specific) |
| A31 | Update Person Information | Person-level update (not visit-specific) |
| A40 | Merge Patient | Two patient records merged into one |
| A41 | Merge Account | Two accounts merged |
| A44 | Move Account | Account reassigned to different patient |
Tracking Events
Section titled “Tracking Events”| Event | Name | Description |
|---|---|---|
| A09 | Patient Departing (Tracking) | Temporary departure from assigned location |
| A10 | Patient Arriving (Tracking) | Arrival at temporary location |
| A15 | Pending Transfer | Transfer requested but not yet executed |
| A16 | Pending Discharge | Discharge requested but not yet executed |
| A21 | Patient Goes on Leave | LOA from inpatient bed |
| A22 | Patient Returns from Leave | LOA return |
| A25 | Cancel Pending Discharge | Reversal of A16 |
| A26 | Cancel Pending Transfer | Reversal of A15 |
The most commonly implemented HL7 ADT message types are HL7 ADT A01 (admission), HL7 ADT A04 (registration), and HL7 ADT A08 (patient update). These three events account for the majority of ADT interface traffic in most hospitals.
Sample ADT^A01 Message
Section titled “Sample ADT^A01 Message”A complete admission message with all common segments:
| Field | Name | Value | Note |
|---|---|---|---|
MSH-3 | Sending Application | EPIC | |
MSH-4 | Sending Facility | MAIN_HOSP | |
MSH-9 | Message Type | ADT^A01^ADT_A01 | Admit/Visit Notification |
MSH-10 | Message Control ID | MSG00001 | |
MSH-11 | Processing ID | P | Production |
| Field | Name | Value | Note |
|---|---|---|---|
EVN-1 | Event Type Code | A01 | Admit |
EVN-2 | Recorded Date/Time | 202603011430 | |
EVN-5 | Operator ID | ADMIN^JONES^BETTY^^^RN | Nurse who triggered the admit |
| Field | Name | Value | Note |
|---|---|---|---|
PID-3 | Patient Identifier List | MRN12345^^^MAIN_HOSP^MR | MRN + SSN (repeating) |
PID-5 | Patient Name | DOE^JOHN^ALEXANDER | |
PID-7 | Date of Birth | 19800115 | |
PID-8 | Administrative Sex | M | |
PID-18 | Patient Account Number | ACCT98765^^^MAIN_HOSP^AN |
| Field | Name | Value | Note |
|---|---|---|---|
PV1-2 | Patient Class | I | Inpatient |
PV1-3 | Assigned Location | ICU^0101^01^MAIN_HOSP | ICU, Room 0101, Bed 01 |
PV1-4 | Admission Type | E^Emergency | |
PV1-7 | Attending Doctor | ATT1234^SMITH^JANE^^^MD | |
PV1-8 | Referring Doctor | REF5678^JONES^BOB^^^MD |
| Field | Name | Value | Note |
|---|---|---|---|
NK1-2 | Name | DOE^JANE^M | |
NK1-3 | Relationship | SPO^Spouse | Emergency contact |
| Field | Name | Value | Note |
|---|---|---|---|
IN1-2 | Insurance Plan ID | BCBS001^BLUE CROSS BLUE SHIELD | |
IN1-8 | Group Number | GRP54321 | |
IN1-12 | Plan Effective Date | 20230101 | |
IN1-13 | Plan Expiration Date | 20261231 | |
IN1-17 | Relationship | SELF | Patient is the subscriber |
| Field | Name | Value | Note |
|---|---|---|---|
AL1-2 | Allergen Type | DA^Drug Allergy | |
AL1-3 | Allergen Code | PCN^Penicillin | Penicillin allergy |
AL1-4 | Severity | SV^Severe | Hard stop in ordering systems |
AL1-5 | Reaction | Anaphylaxis |
Browse the full HL7 sample messages catalog for more ADT examples — each one ready to copy as valid HL7 or download as a .hl7 file.
Key Implementation Considerations
Section titled “Key Implementation Considerations”A08 (Update Patient) vs A31 (Update Person)
Section titled “A08 (Update Patient) vs A31 (Update Person)”The distinction between A08 and A31 trips up many implementers:
- A08 updates patient information in the context of a visit (PV1 segment present). Use when the patient has an active encounter.
- A31 updates person-level information independent of any visit. Used by master patient index (MPI) systems for demographic corrections.
Some EHR vendors (notably Epic) use A08 for both scenarios, while others strictly separate them. Always confirm with the sending system which events they fire and under what conditions.
A40 (Merge Patient)
Section titled “A40 (Merge Patient)”Merge events are among the most complex ADT operations. When two patient records are merged, the surviving MRN absorbs the deprecated MRN. The A40 message contains:
- MRG segment: The deprecated (old) patient identifier being merged away
- PID segment: The surviving (correct) patient identifier
Receiving systems must update all references from the old MRN to the new MRN — lab results, orders, documents, and any other linked data. Incorrect merge handling is a patient safety risk.
High-Volume ADT Processing
Section titled “High-Volume ADT Processing”In a large hospital, ADT feeds can generate thousands of messages per hour during shift changes, morning registrations, and discharge waves. Key design considerations:
- Message queuing: Buffer ADT messages during downstream system outages
- Idempotency: Handle duplicate messages gracefully (same control ID)
- Order preservation: ADT events must be processed in chronological order per patient
- Filtering: Not every downstream system needs every ADT event — route selectively