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.
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.
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.
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.
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