NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Code Table7 min read

HL7 Table HL70003: Event Type Code

HL7 v2 table 0003 is the master enumeration of ADT (Admit-Discharge-Transfer) trigger events. Every ADT^A0n message in a hospital interface — the lifeblood of patient registration, bed management, and downstream census feeds — carries one of these codes in both MSH-9.2 Trigger Event and EVN-1 Event Type Code. The table is HL7-defined, OID 2.16.840.1.113883.18.4, published under the canonical URI http://terminology.hl7.org/CodeSystem/v2-0003.

Purpose

Table 0003 answers the question "what just happened to this patient?" in a way that downstream systems can route on without parsing the rest of the message. An EHR fires A01 when a patient is admitted, A02 when they move beds, A03 when they go home, A08 to update demographics. A lab system listening for census changes can subscribe to A01/A03/A08 and ignore the rest; a bed-management dashboard cares about A02/A14/A15 and nothing else.

Because the trigger event drives subscription and routing, table 0003 is one of the few HL7 vocabularies where exact-string matching matters more than semantic equivalence. An interface engine that re-emits an A04 (Register) as A01 (Admit) will break downstream billing logic, because A04 is an outpatient register that does not start an inpatient stay.

Where it's used

FieldSegmentNotes
MSH-9.2MSHTrigger Event component of the Message Type composite — e.g. ADT^A01^ADT_A01.
EVN-1EVNEvent Type Code — should match MSH-9.2; deprecated in v2.3 but still populated by most senders.

The EVN-1 / MSH-9.2 redundancy is a v2.2 holdover. EVN-1 was officially deprecated in v2.3 in favor of MSH-9.2, but virtually every production sender still emits both, and many receivers still validate that they match.

Code list

The full table contains 80+ codes. The primary ADT triggers below cover the vast majority of production traffic; additional codes exist for application-level events (A60 allergy update, Z-events for site-specific extensions) and for the rarely-used "tracking" subset.

CodeDisplayComment
A01Admit/visit notification
A02Transfer a patient
A03Discharge/end visit
A04Register a patient
A05Pre-admit a patient
A06Change outpatient to inpatient
A07Change inpatient to outpatient
A08Update patient information
A09Patient departing - tracking
A10Patient arriving - tracking
A11Cancel admit/visit notification
A12Cancel transfer
A13Cancel discharge/end visit
A14Pending admit
A15Pending transfer
A16Pending discharge
A17Swap patients
A18Merge patient information (replaced by A24/A30/A34/A35 in v2.3.1+)
A21Patient goes on a "leave of absence"
A22Patient returns from a "leave of absence"
A23Delete a patient record
A24Link patient information
A25Cancel pending discharge
A26Cancel pending transfer
A27Cancel pending admit
A28Add person information
A29Delete person information
A30Merge person information
A31Update person information
A32Cancel patient arriving - tracking
A33Cancel patient departing - tracking
A34Merge patient information - patient ID only
A35Merge patient information - account number only
A36Merge patient information - patient ID and account number
A37Unlink patient information
A38Cancel pre-admit
A39Merge person - external ID
A40Merge patient - internal ID
A41Merge account - patient account number
A42Merge visit - visit number
A43Move patient information - internal ID
A44Move account information - patient account number
A45Move visit information - visit number
A46Change external ID
A47Change internal ID
A48Change alternate patient ID
A49Change patient account number
A50Change visit number
A51Change alternate visit ID
A52Cancel leave of absence for a patient
A53Cancel patient returns from leave of absence
A54Change attending doctor
A55Cancel change attending doctor
A60Update allergy information
A61Change consulting doctor
A62Cancel change consulting doctor

Note: additional event codes (A63+, Z-events) exist for site-specific extensions and newer functions; consult the v2.8.1 base standard chapter 3 for the complete list.

Code system OID and canonical URI

  • OID: 2.16.840.1.113883.18.4
  • Canonical URI: http://terminology.hl7.org/CodeSystem/v2-0003
  • FHIR ValueSet: http://terminology.hl7.org/ValueSet/v2-0003

HL7-defined vs user-defined

Table 0003 is HL7-defined — extension is not permitted in conformant interfaces. Sites that need a custom trigger event must use Z-events (Z01, Z02 …) carried in a separate, site-negotiated namespace; they are not valid 0003 codes.

Version differences

  • v2.2: Original A01–A20 set defined.
  • v2.3: EVN-1 deprecated in favor of MSH-9.2. A18 marked for replacement.
  • v2.3.1: A18 (Merge) split into A34/A35/A36 for precise merge semantics; A24 (Link) added.
  • v2.5: A39–A45 added for external/internal ID merges and moves.
  • v2.6: A46–A55 added for ID change events and attending doctor changes.
  • v2.7: A60–A62 added for allergy updates and consulting doctor changes.
  • v2.8.1: No new codes; existing definitions stable.

Common mistakes

  1. Treating A04 as A01. A04 (Register) creates a person/account but does not open an inpatient stay. Downstream billing systems will reject an A04 routed as an admit.
  2. Sending A08 for every update. A08 is a general "patient information changed" event; using it to communicate transfers (which should be A02) breaks bed-management feeds.
  3. Mismatching MSH-9.2 and EVN-1. Many receivers validate equality; a mismatch causes ACK rejection.
  4. Using A18 in v2.5+. A18 was replaced by A34/A35/A36 in v2.3.1. Modern receivers may not recognise A18 at all.
  5. Emitting A11 without the original A01's correlation data. A11 (Cancel admit) requires enough identifiers to undo the A01 in the receiver — missing PID-18 (Account Number) is the most common cause of failed cancels.

Examples

Sample MSH and EVN

MSH|^~&|EPIC|HOSP|LAB|LAB|20260625103000||ADT^A01^ADT_A01|MSG00001|P|2.8.1
EVN|A01|20260625103000|||1234^DOCTOR^WELBY^^^^MD

FHIR Coding JSON

{
  "system": "http://terminology.hl7.org/CodeSystem/v2-0003",
  "code": "A01",
  "display": "Admit/visit notification"
}

Mapping failure

A sender emits MSH-9 = ADT^A04 (Register) for an ED arrival, but the downstream bed-management system only subscribes to A01. The patient never appears on the ED census board until an A06 (Change outpatient to inpatient) fires hours later. Root cause: registration vs admission semantics confused at the sender.

FHIR mapping

There is no direct FHIR ValueSet equivalent to table 0003 — FHIR models the state of an Encounter, not the event that changed it. The v2-to-FHIR IG ConceptMap maps each trigger to an Encounter.status transition:

HL7v2 EventEncounter.status
A01, A04, A06in-progress
A03finished
A05, A14planned
A11, A13, A27, A38cancelled / entered-in-error
A08(no status change — update only)

Engine considerations

  • Mirth / NextGen Connect: routing-by-trigger is implemented in the Source Filter using msg['MSH']['MSH.9']['MSH.9.2'].toString(). Avoid filtering on EVN-1 alone — some senders omit EVN entirely.
  • Rhapsody / Lyniate: the message-type property exposed in the filter expression already concatenates MSH-9.1^9.2; match against ADT^A01, not A01 alone.
  • Cloverleaf: the trigger event is bound to the $msgtype variable; sites typically branch on it in a TPS proc.
  • HAPI v2: Terser.get(msg, "/MSH-9-2") returns the trigger event; Terser.get(msg, "/EVN-1") returns the EVN-1 copy.

How Vorro handles

The Vorro engine treats MSH-9.2 as the authoritative trigger and EVN-1 as advisory. Routes filter on the canonical trigger code, and the policy library ships preset rules for the four highest-volume events (A01/A02/A03/A08). When EVN-1 disagrees with MSH-9.2, Vorro emits a non-fatal warning and prefers MSH-9.2 — matching the v2.3+ deprecation guidance. Z-events are passed through unchanged but excluded from the standard 0003 ValueSet validation.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 Table HL70003: Event Type Code | Vorro Academy | Vorro