HL7 ADT_A12 Cancel Transfer

HL7 message structure ADT_A12 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Event Type Yes No
Patient Identification Yes No
Patient Additional Demographic No No
Patient Visit Yes No
Patient Visit - Additional Information No No
Disability No Yes
Observation/Result No Yes
Diagnosis No No

ADT_A12 cancels a previous transfer event. It is usually sent when an A02 was sent in error, the patient did not move after all, or the movement was administratively backed out. Receivers use it to restore location state, census, routing, and sometimes bed availability.

This is a correction message, and correction messages deserve extra care. The hard part is not the segment list; it is agreeing what the receiver should restore when it has already processed later messages.

A small A12 example

MSH|^~\&|ADT|CITYHOSP|BEDBOARD|CITYHOSP|20260715143500||ADT^A12^ADT_A12|ADT00012|P|2.5.1 EVN|A12|20260715143300 PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F PV1|1|I|WARD1^101^1^CITYHOSP^^BED||WARD2^205^1^CITYHOSP^^BED|||12345^Careful^Clara|||||||||||VN000345^^^CITYHOSP^VN

What systems do with it

The sender is usually the system that originated the transfer. Receivers should identify the same patient and visit, then reverse or correct the prior location movement according to local rules. Some systems store both the cancelled movement and the current location; others simply restore the last valid location.

PID and PV1 are the practical core. EVN timing helps receivers decide whether the cancellation belongs before or after later events in the movement history.

Correction rules

Write down whether the message contains the location to restore, the location being cancelled, or both. HL7 gives you structures and event semantics, but local systems still need a deterministic rule. This is especially important when bed management, pharmacy, and clinical worklists all update from the same feed.

If another A02 has already arrived after the cancelled transfer, blindly rolling back to an older bed can be worse than ignoring the A12. Interface engines should log these cases clearly and, where possible, compare event times before applying location state.

Implementation traps

Do not confuse A12 with a new transfer back to the old location. A transfer-back creates a real movement history. A cancel-transfer says a previous movement should not have counted. Those are different stories, especially for bed occupancy and audit trails.

Reference notes

ADT cancel events exist so receivers can unwind earlier administrative state changes instead of receiving another ordinary movement. The local generated structure shows the smaller v2.5.1 A12 form, with MSH, EVN, PID, PV1, and selected optional context.