Complete Guide to HL7 Message Types (ADT, ORM, ORU, SIU, MDM, DFT)
Laksh Patel, Founder, HealthInterops
Laksh Patel is the Founder of HealthInterops and creator of HL7ToolBox. With more than 17 years of software engineering experience and over 5 years specializing in healthcare interoperability, he has designed and delivered more than 3,000 healthcare interfaces across hospitals, laboratories, and enterprise healthcare systems.
This article is reviewed and maintained by the HL7ToolBox Team.
Healthcare organizations exchange millions of HL7 messages every day to keep electronic health record (EHR) systems, laboratory information systems (LIS), radiology systems (RIS), billing applications, and other healthcare software synchronized.
If you're new to healthcare interoperability—or you're building an HL7 integration engine—you'll quickly encounter message types such as ADT, ORM, ORU, SIU, MDM, and DFT.
This guide explains each HL7 message type, its purpose, when it's used, and provides practical healthcare examples to help developers, interface analysts, and integration engineers understand real-world workflows.
What Are HL7 Message Types?
An HL7 message type defines the business event being exchanged between healthcare systems.
Each message consists of two parts:
- Message Code (such as ADT or ORU)
- Trigger Event (such as A01 or R01)
Example 1:
ADT^A01
- ADT = Admit, Discharge, Transfer
- A01 = Patient Admission
Example 2:
ORU^R01
- ORU = Observation Result
- R01 = Unsolicited Result Message
The message type appears in MSH-9 of every HL7 message.
Example Segment:
MSH|^~\\&|LAB|HOSPITAL|EMR|HOSPITAL|20260625||ORU^R01|123456|P|2.5.1
Why HL7 Message Types Matter
Understanding message types helps you:
- Build reliable healthcare interfaces
- Design integration workflows
- Troubleshoot interface failures
- Configure interface engines
- Map healthcare data correctly
- Process acknowledgements efficiently
Whether you're integrating Epic, Cerner, MEDITECH, Allscripts, or a laboratory analyzer, selecting the correct message type is essential.
HL7 Message Type Summary
| Message | Purpose | Common Sender | Common Receiver |
|---|---|---|---|
| ADT | Patient registration & movement | EHR | Laboratory, RIS, Billing |
| ORM | Orders | EHR | Laboratory, Radiology |
| ORU | Results | Laboratory | EHR |
| SIU | Scheduling | Scheduling System | EHR, Patient Portal |
| MDM | Medical documents | EHR | Document Management |
| DFT | Financial transactions | Billing | Insurance, Accounting |
| ACK | Acknowledgement | Any System | Sender |
HL7 ADT Messages (Admit, Discharge, Transfer)
What Is an ADT Message?
ADT messages communicate patient demographic and visit information between healthcare systems. They are usually the first messages exchanged after patient registration.
Common Trigger Events
| ADT^A01 | Admit Patient |
| ADT^A02 | Transfer Patient |
| ADT^A03 | Discharge Patient |
| ADT^A04 | Register Outpatient |
| ADT^A05 | Pre-admit Patient |
| ADT^A08 | Update Patient Information |
| ADT^A11 | Cancel Admission |
Typical Workflow
Reception Desk
↓
Hospital Info System
↓
ADT Message
↓
Integration Engine
↓
Laboratory
Radiology
Billing
PharmacyImportant Segments
- MSH
- EVN
- PID
- PV1
- NK1
- GT1
- IN1
Real Example
A patient arrives at the emergency department. The registration system immediately sends an ADT^A01. Every connected system automatically receives the patient's demographic information.
HL7 ORM Messages (Orders)
What Is an ORM Message?
ORM messages communicate healthcare orders. Orders may include Laboratory tests, Radiology exams, Pharmacy prescriptions, Procedures, or Referrals.
Common Trigger Event: ORM^O01
Workflow
Doctor
↓
EHR
↓
ORM Message
↓
Integration Engine
↓
Laboratory Info SystemImportant Segments
- PID
- PV1
- ORC
- OBR
- DG1
Example
A physician orders: Complete Blood Count, Lipid Panel, and HbA1c. The EHR sends an ORM message to the laboratory system to process the tests.
HL7 ORU Messages (Observation Results)
What Is an ORU Message?
ORU messages return clinical results from diagnostic systems. They are one of the most frequently exchanged HL7 message types.
Common Trigger Event: ORU^R01
Typical Workflow
Laboratory Analyzer
↓
Laboratory Info System
↓
ORU Message
↓
Integration Engine
↓
Electronic Medical RecordImportant Segments
- PID
- PV1
- OBR
- OBX
Example
Laboratory results like WBC, Hemoglobin, Platelets, and Glucose are returned. These clinical values are transmitted inside the OBX segments.
HL7 SIU Messages (Scheduling Information)
What Is an SIU Message?
SIU messages manage appointments and scheduling. Used for Clinic appointments, Imaging appointments, Surgery scheduling, and Follow-up visits.
Common Trigger Events
| SIU^S12 | New Appointment |
| SIU^S13 | Reschedule |
| SIU^S14 | Modify Appointment |
| SIU^S15 | Cancel Appointment |
Important Segments
- SCH
- PID
- PV1
- AIP
- AIL
- AIG
HL7 MDM Messages (Medical Document Management)
What Is an MDM Message?
MDM messages transmit clinical documents such as Discharge summaries, Consultation notes, Operative reports, Pathology reports, and Referral letters.
Common Trigger Events
| MDM^T02 | Original Document |
| MDM^T04 | Document Status |
| MDM^T08 | Edit Document |
Important Segments
- TXA
- OBX
- PID
- PV1
HL7 DFT Messages (Detailed Financial Transactions)
What Is a DFT Message?
DFT messages communicate billing and financial information for use cases like Charges, Insurance claims, Procedures, Medications, and Professional fees.
Common Trigger Event: DFT^P03
Important Segments
- FT1
- DG1
- PR1
- PID
- PV1
HL7 ACK Messages (Acknowledgements)
Although not a business workflow, ACK messages are critical. Every sender needs confirmation that the receiving system successfully processed the message.
ORM
↓
Laboratory
↓
ACKWithout acknowledgements, integration engines cannot reliably determine whether messages were accepted or require retransmission.
Which HL7 Message Type Should You Use?
| Scenario | Message Type |
|---|---|
| Register a patient | ADT |
| Update demographics | ADT |
| Send laboratory order | ORM |
| Send radiology order | ORM |
| Return laboratory results | ORU |
| Return radiology report | ORU |
| Schedule appointment | SIU |
| Send discharge summary | MDM |
| Send billing charges | DFT |
Best Practices for Working with HL7 Message Types
- Always validate incoming HL7 messages before processing.
- Verify the message type using MSH-9.
- Support HL7 acknowledgements (ACK/NACK).
- Use unique Message Control IDs (MSH-10).
- Log inbound and outbound messages for troubleshooting.
- Handle retries for failed message delivery.
- Version your interfaces (HL7 2.3, 2.4, 2.5.1, etc.).
- Test every trigger event separately.
- Document custom Z-segments and local rules.
- Use an integration engine to manage routing and monitoring.
HL7 Message Types vs FHIR Resources
| HL7 Message | Comparable FHIR Resource(s) |
|---|---|
| ADT | Patient, Encounter |
| ORM | ServiceRequest |
| ORU | Observation, DiagnosticReport |
| SIU | Appointment, Schedule |
| MDM | DocumentReference, Composition |
| DFT | Claim, Invoice, ChargeItem |
Many healthcare organizations use HL7 internally while exposing FHIR APIs for patient portals, mobile apps, and third-party integrations.
Conclusion
HL7 message types form the foundation of healthcare interoperability. Whether you're admitting a patient, placing a laboratory order, delivering test results, scheduling appointments, managing clinical documents, or processing billing information, each workflow depends on the correct HL7 message type.
For healthcare developers and interface analysts, mastering ADT, ORM, ORU, SIU, MDM, DFT, and ACK messages is an essential step toward building reliable and scalable integrations. As healthcare systems continue adopting FHIR alongside HL7, understanding these message types remains one of the most valuable skills in modern healthcare IT.
Frequently Asked Questions
What is the most common HL7 message type?
ADT and ORU messages are among the most frequently exchanged because they support patient registration and laboratory result reporting.
What is the difference between ORM and ORU?
ORM messages send orders to downstream systems, while ORU messages return the resulting clinical observations or diagnostic reports.
What does ADT stand for?
ADT stands for Admit, Discharge, Transfer, and is used to communicate patient demographic and visit events.
Which HL7 message is used for appointments?
SIU (Scheduling Information Unsolicited) messages are used to create, modify, reschedule, and cancel appointments.
Which message is used for billing?
DFT (Detailed Financial Transaction) messages communicate charges, procedures, medications, and other financial information.
Where is the HL7 message type stored?
The message type is stored in MSH-9, which contains both the message code and trigger event (for example, ORU^R01 or ADT^A08).
More Resources & Internal Tools
- HL7 Validator – Validate message structure and segments.
- HL7 Compare Tool – Compare two HL7 messages side by side.
- HL7 Viewer – View HL7 messages in a readable format.
- HL7 vs FHIR – Learn when to use each interoperability standard.
- HL7 Segment Guide – Explore MSH, PID, OBR, OBX, PV1, and more.
References
- HL7 v2.x message structure and trigger events
- Hospital ADT, order, result, scheduling, document, and billing workflows
- Real-world interface engine implementation practices
Editorial Review
HL7ToolBox content is written and reviewed by healthcare integration professionals with hands-on experience in HL7 v2.x, FHIR, healthcare APIs, and enterprise healthcare interfaces.