Your email address will not be published. Required fields are marked *
Our expert reaches out shortly after receiving your request and analyzing your requirements.
If needed, we sign an NDA to protect your privacy.
We request additional information to better understand and analyze your project.
We schedule a call to discuss your project, goals. and priorities, and provide preliminary feedback.
If you're satisfied, we finalize the agreement and start your project.

If you’re working in healthcare IT, you’ve probably heard about HL7—but what exactly are HL7 message types and HL7 event types? These two concepts form the backbone of communication between electronic health systems. Whether you’re integrating an EMR, building a lab interface, or troubleshooting a connection between systems, understanding these terms is critical.
This guide will break it all down: what they are, how they relate, and why they matter.
HL7 (Health Level Seven) is a set of international standards for the exchange of clinical and administrative data between healthcare systems. These standards are designed to make sure data flows consistently and accurately across systems—regardless of the vendor or platform.
HL7 v2 is the most widely adopted version, and it’s message-based. That means data is exchanged in structured messages. Every message has a specific purpose and follows a predictable format.
That’s where HL7 message types and HL7 event types come in.
An HL7 message type tells you what kind of data is being sent. It defines the structure of the message and its overall purpose. In HL7, each message type is represented by a three-character code.
Here are some of the most common HL7 message types:
This is the most frequently used HL7 message type. It covers events related to patient movement, including admissions, transfers, discharges, and updates to patient demographics.
Example: A patient is admitted to the hospital — an ADT^A01 message is triggered.
This type handles new orders being placed in the system. These can be lab tests, imaging requests, medication orders, or any other kind of service order.
Example: A doctor orders a blood test — an ORM^O01 message is created and sent to the lab system.
Used to send clinical results, such as lab values, pathology reports, or imaging findings.
Example: The lab completes the blood test — an ORU^R01 message delivers the result back to the EMR.
This message type deals with billing information, including charges for services rendered during a visit.
Manages scheduling events such as appointments, updates, and cancellations.
Used to transmit documents, such as discharge summaries or progress notes.
Each message type has a defined structure, made up of segments like PID (patient info), OBR (order request), OBX (observation result), and others. But structure alone isn’t enough—you also need to know why the message is being sent.
That’s where HL7 event types come in.
If HL7 message types tell us what kind of data is being sent, then HL7 event types explain why the message was triggered in the first place.
An event type is paired with a message type to create a complete message trigger, written like this: ADT^A01, where:
ADT is the message type (Admit, Discharge, Transfer)A01 is the event type (Patient Admit)Together, they tell the receiving system, “This is an admit message for a patient.”
| Event Type | Trigger | Description |
|---|---|---|
| A01 | Admit | Patient is being admitted |
| A02 | Transfer | Patient is being transferred |
| A03 | Discharge | Patient is being discharged |
| A04 | Register | Outpatient registration |
| A08 | Update | Update patient information |
| A11 | Cancel Admit | Admission was canceled |
| Event Type | Description |
|---|---|
| O01 | New order |
| O02 | Order acknowledgment |
| Event Type | Description |
|---|---|
| R01 | Unsolicited result (most common) |
| R02 | Query response (less common) |
| Event Type | Description |
|---|---|
| S12 | New appointment booking |
| S13 | Appointment reschedule |
| S14 | Appointment modification |
| S15 | Appointment cancellation |
Here’s why understanding both hl7 message types and hl7 event types is crucial:
When building interfaces between systems—say, from an EMR to a lab—you need to know what messages to expect and how to process them. Knowing the exact type (ORM^O01) tells your system how to read and handle the message correctly.
In a hospital, a single patient admission triggers several actions across departments: registration, room assignment, medication orders, etc. Each action may generate different message types and event types. Mapping these out ensures that all systems stay in sync.
If data isn’t flowing correctly between systems, one of the first things you check is the message logs. Knowing the message and event type helps identify where something went wrong or what’s missing.
Healthcare data is sensitive. When systems are audited, being able to track exactly what message was sent and why (based on message type and event type) helps maintain transparency and accountability.
Let’s say a patient walks into a hospital. Here’s how HL7 message types and event types are used at every step:
ADT^A04 (Outpatient Registration)ADT^A01 (Admit a patient)ORM^O01 (Order for lab test)ORU^R01 (Lab sends results)ADT^A03 (Discharge the patient)Each step triggers a specific combination of message and event types. Receiving systems know how to process these messages and update records accordingly.
While this guide focuses on HL7 v2.x (specifically versions 2.3–2.6, which are most common), newer systems may use HL7 v3 or FHIR (Fast Healthcare Interoperability Resources). These use a different structure—often more XML or JSON based—but the concept of message types and events still applies.
If you’re in a modern health IT environment, you may see both HL7 v2 and FHIR operating side by side.
ADT^A01 or ORU^R01, which guide system behavior.| Message Type | Event Type | Description |
|---|---|---|
| ADT | A01 | Admit patient |
| ADT | A03 | Discharge patient |
| ADT | A08 | Update patient info |
| ORM | O01 | New order |
| ORU | R01 | Observation result |
| SIU | S12 | Schedule new appointment |
Need help mapping your current HL7 feed or designing interface logic for your software? I can help break it down, message by message. Just let me know.