HL7 Message Viewer

Parse and analyze HL7 v2.x messages with field-level detail. Free online viewer for healthcare integration testing.

HIPAA-Compliant by Design

Your medical data never leaves your device. No PHI is transmitted to any server.

HIPAA-Friendly No PHI Transmission Local Processing

Upload HL7 Messages

Drag files here, paste text below, or click to select

Supports .hl7, .hl7v2, .txt files (max 5MB per file, 10 files max)

Examples

Keywords

hl7 viewerhl7 parserhl7 messagehl7 v2health level 7medical messaginghl7 radiologyhl7 orm messageradiology hl7 integration

Need something else?

How to use

1

Paste an HL7 v2.x message or upload a .hl7 file.

2

Explore parsed segments and fields with their names and decoded values.

3

Optionally paste a second message to compare the two side by side.

Features

Full Segment & Field Parsing

Parses all standard HL7 v2.x message types with field names, data types, and descriptions.

Message Comparison

Diff two HL7 messages side by side, highlighting added, removed, and changed fields.

Client-Side Privacy

Message parsing happens entirely in your browser — no PHI is transmitted to any server.

Why Choose This Tool?

Parse HL7 Messages Without Exposing PHI

Every message you paste or upload is parsed entirely in your browser. Patient identifiers, visit numbers, and clinical results never leave your device. This eliminates the compliance risk of pasting real HL7 messages into cloud-based tools, giving integration analysts confidence that they can troubleshoot production messages safely.

No Downloads, No Licenses, No Waiting

The viewer runs directly in your browser — there is nothing to install, no Java runtime to configure, and no license file to manage. Integration analysts on tight deadlines can open the tool and begin parsing within seconds, whether they are at the office, at a client site, or working remotely on a personal laptop.

Designed for Healthcare Integration Professionals

The interface is built around the workflows integration analysts perform daily: inspecting segment structures, verifying field mappings, and comparing message pairs. Field names, data types, and table values are decoded automatically so you spend less time cross-referencing the HL7 specification and more time solving interface problems.

Full Control Over Sensitive Message Data

Because parsing is entirely local, your organization retains complete custody of the message content. There is no server-side logging, no temporary storage, and no analytics pipeline that could inadvertently capture PHI. This supports HIPAA compliance and satisfies institutional data-governance requirements without additional vendor agreements.

HL7 v2.x Message Structure: A Guide for Integration Analysts

What Is HL7 v2.x?

Health Level Seven version 2 (HL7 v2.x) is the most widely deployed healthcare messaging standard in the world. It defines a pipe-delimited text format for exchanging clinical, administrative, and financial data between hospital information systems. Despite the emergence of newer standards like FHIR, HL7 v2.x remains the backbone of real-time interfaces in virtually every hospital, handling ADT notifications, lab results, orders, scheduling, and more.

Anatomy of an HL7 Message

An HL7 v2.x message is composed of segments, each on its own line and identified by a three-character code. The most common segments include:

  • MSH (Message Header): Contains the encoding characters, sending and receiving applications, message type, control ID, and version number. This is always the first segment and defines how the rest of the message should be parsed.
  • PID (Patient Identification): Carries patient demographics — name, date of birth, medical record number, sex, address, and phone number. This segment is present in virtually every clinical message type.
  • PV1 (Patient Visit): Describes the encounter context including patient class (inpatient, outpatient, emergency), attending physician, admit date, and assigned location.
  • OBR (Observation Request): Represents an order or procedure, with fields for the universal service identifier, order date/time, and result status.
  • OBX (Observation/Result): Carries individual result values — lab analytes, vital signs, or report text. Each OBX includes a value type, observation identifier, value, units, and abnormal flag.
  • ORC (Common Order): Provides order-control information such as order status, placer and filler numbers, and ordering provider.

Field Structure and Encoding

Within each segment, fields are separated by the pipe character (|). Fields can contain components separated by the caret (^) and sub-components separated by the ampersand (&). Repeating fields use the tilde (~) as a separator. These delimiters are declared in MSH-1 and MSH-2, allowing non-standard encoding when needed.

Each field has a defined data type — for example, XPN for extended person name, CWE for coded with exceptions, or TS for timestamp. Understanding data types is essential for correct parsing and mapping during interface development.

Common Integration Testing Scenarios

  • ADT Feed Validation: When connecting a new EHR to downstream systems, analysts verify that admit, discharge, and transfer messages contain correct patient identifiers, visit information, and location codes.
  • Lab Result Mapping: Inbound ORU messages from reference laboratories must map observation identifiers (OBX-3) to local codes. A viewer that decodes fields helps analysts confirm mappings without manual pipe-counting.
  • Order Interface Troubleshooting: When orders fail to route correctly, comparing the outbound ORM message with the expected format can reveal missing fields, incorrect segment order, or encoding issues.
  • Message Comparison: During upgrades or interface engine migrations, analysts compare messages before and after the change to confirm that transformations are applied correctly and no data is lost.

Healthcare Interoperability Context

HL7 v2.x interfaces are managed by integration engines such as Mirth Connect, Rhapsody, Cloverleaf, and Epic Bridges. These engines route messages between systems, apply transformations, and handle acknowledgments. When troubleshooting, analysts often need to inspect raw messages at various points in the routing path. A browser-based viewer that can parse and compare messages on demand — without installing additional software — streamlines this workflow significantly.

Acknowledgment Messages and Error Handling

HL7 v2.x uses ACK (acknowledgment) messages to confirm receipt and processing of inbound messages. An ACK contains an MSA segment with an acknowledgment code — AA (Application Accept), AE (Application Error), or AR (Application Reject) — along with the original message control ID for correlation. When interfaces fail silently, inspecting the ACK response is often the first debugging step. The viewer parses ACK messages just like any other message type, letting you examine the MSA fields and any ERR segments that describe the specific error condition. Understanding ACK patterns is critical for diagnosing dropped messages, duplicate processing, and timeout issues in production HL7 interfaces.

HL7 v2.x vs. FHIR: When Each Standard Applies

While FHIR (Fast Healthcare Interoperability Resources) has gained significant adoption for RESTful APIs and modern interoperability use cases, HL7 v2.x remains dominant for real-time, point-to-point interfaces within hospitals. Most EHR systems — including Epic, Cerner (Oracle Health), and MEDITECH — continue to produce HL7 v2.x messages for ADT feeds, lab results, and order communications. FHIR excels at patient-facing applications, population health queries, and cross-organizational data exchange. In practice, many healthcare organizations run both standards simultaneously, using v2.x for internal interfaces and FHIR for external interoperability. Integration analysts therefore need tooling for both formats.

Privacy Considerations for HL7 Messages

HL7 messages frequently contain highly sensitive PHI: patient names, Social Security numbers, diagnoses, lab results, and insurance details. Pasting these messages into cloud-based tools creates a transmission risk that may violate HIPAA. Our tool eliminates this risk by performing all parsing locally. No message content is ever sent to a server, cached, or logged.

For radiology and laboratory interfaces, the viewer is especially useful when analysts need to trace how a clinical event propagated across multiple systems. An ADT update can explain why an ORU result failed to attach to the right encounter; an ORM order can explain why a modality worklist entry looks incomplete; an ACK can reveal whether the receiving system rejected the message outright or accepted it with downstream business errors. Seeing those structures decoded in one place shortens the time between alert and root cause.

Another practical benefit is preserving a clean separation between message inspection and message transformation. Before teams write or adjust interface engine mappings, they need to confirm what the source system actually sent: repetitions, missing trailing pipes, unexpected encoding characters, local Z-segments, and version-specific field usage. A viewer that exposes the original structure without modifying it gives analysts a trustworthy baseline before they move into scripting, transformation, or vendor escalation work.

Frequently Asked Questions

Is this HL7 viewer HIPAA-compatible?

The tool parses all HL7 messages locally in your browser. No message content, patient data, or PHI is transmitted to any server. Because data never leaves your device, the tool is HIPAA-compatible (all processing in your browser) and supports compliant workflows without requiring a Business Associate Agreement with a third party.

Which HL7 v2.x versions are supported?

The viewer supports HL7 v2.x messages from version 2.1 through 2.8, including the widely used v2.3, v2.5, and v2.5.1 variants. It parses the version from the MSH-12 field and applies the correct field definitions for that version.

Can I compare two HL7 messages side by side?

Yes. Paste or upload two messages and the viewer displays them in a side-by-side layout. Segments and fields are aligned by position, with differences highlighted. This is useful for verifying interface engine transformations or validating messages before and after system upgrades.

What message types can the viewer parse?

The viewer handles all standard HL7 v2.x message types including ADT (admit/discharge/transfer), ORM (orders), ORU (results), SIU (scheduling), MDM (documents), DFT (financial transactions), and more. It decodes segment names, field names, and data types automatically.

Does the tool decode HL7 field names automatically?

Yes. Each field is labeled with its standard name, position number, and data type. For example, PID-5 is shown as Patient Name with data type XPN. This eliminates the need to manually count pipes or reference the HL7 specification document.

Can I upload .hl7 files directly?

Yes. You can either paste a message into the text area or upload a .hl7 file from your file system. The viewer detects the segment delimiter and encoding characters automatically, handling both standard and non-standard delimiters.

How does the viewer handle special characters and encoding?

The viewer reads the encoding characters from MSH-1 and MSH-2 to correctly split fields, components, sub-components, and repetitions. It handles escape sequences for special characters like line breaks, field separators, and hexadecimal-encoded values.

Is there a message size limit?

There is no hard limit. The viewer runs in your browser, so performance depends on your device. Messages with hundreds of segments parse quickly on modern hardware. For extremely large batch files, consider splitting them into individual messages first.

Can I use this on a hospital workstation?

Yes. Since all processing happens in the browser, no data leaves the local machine. The tool works on hospital networks, Citrix sessions, and VPN-connected devices without requiring additional firewall rules or software approvals.

Does the viewer support HL7 FHIR?

This tool is specifically designed for HL7 v2.x pipe-delimited messages. It does not parse FHIR (JSON/XML) resources. If you work with both standards, you can use this viewer for v2.x messages and a separate FHIR tool for FHIR bundles.

Related Articles

hl7-tools

HL7 v2.x Message Validation: A Practical Guide for Integration Engineers

Practical guide to validating HL7 v2.x messages. Learn the three layers of validation, how to triage errors vs warnings, and how to fix the issues that break interfaces.

Read more →
hl7-tools

Building Radiology Worklists from HL7 ORM Messages: A Practical Integration Guide

Learn how to turn HL7 ORM orders into reliable radiology worklist entries with field mappings, status handling, validation steps, and troubleshooting guidance.

Read more →
hl7-tools

DICOM Modality Worklist vs HL7 ORM Messages: When to Use Each in Radiology

Compare DICOM Modality Worklist and HL7 ORM messages in radiology workflows, including scheduling, order entry, and scanner integration.

Read more →
hl7-tools

HL7 ADT to FHIR Patient and Encounter Mapping: A Field-by-Field Practical Guide

Learn how to map HL7 ADT messages to FHIR Patient and Encounter resources with field-level guidance for PID, PV1, identifiers, locations, status, and testing.

Read more →
hl7-tools

HL7 Conformance Profiles and Site-Specific Validation: Turning Local Rules into Repeatable Interface Checks

Practical guide to HL7 conformance profiles and site-specific validation. Learn how to formalize local interface rules, combine baseline HL7 checks with profile-aware review, and reduce migration risk.

Read more →
hl7-tools

HL7 ORU to FHIR DiagnosticReport and Observation Mapping: Practical Patterns for Results Interfaces

Map HL7 ORU result messages to FHIR DiagnosticReport and Observation resources with guidance for OBR, OBX, value types, status handling, and validation.

Read more →
hl7-tools

Mapping HL7 PID and PV1 Segments to JSON for ADT Pipelines

Learn how to map HL7 PID and PV1 segments to JSON without losing identifiers, visit context, repetitions, or null semantics in ADT pipelines.

Read more →
hl7-tools

Converting HL7 v2.x Messages to JSON: A Complete Developer Guide

Learn how to convert HL7 v2.x messages to JSON with simplified or HAPI-style output. Step-by-step guide covering field mapping, escape sequences, and integration patterns.

Read more →
hl7-tools

How to Build HL7 Test Messages Without PHI Risk

Learn how to generate valid HL7 v2.x test messages for ADT, ORU, ORM and other trigger events — safely, without PHI, and without hand-crafting pipes.

Read more →
hl7-tools

HL7 ADT Test Messages: How to Generate A01, A03, A04, A08, A11 for Interface Testing

Complete guide to generating HL7 ADT trigger events (A01, A03, A04, A08, A11) for testing interface engines. Segment structure, validation, and integration patterns.

Read more →
hl7-tools

HL7 v2 to FHIR Migration: A Practical Guide for Healthcare Integration Teams

How to map HL7 v2.x ADT, ORU, and ORM messages to FHIR R4 resources. Covers Patient, Encounter, Observation, and ServiceRequest mapping with real examples.

Read more →
hl7-tools

HL7 v2.x in Radiology: ORM Orders, ORU Results, and Worklist Integration

How HL7 v2.x ORM and ORU messages drive radiology workflows — from order entry to result delivery. Covers ORM^O01, ORU^R01, worklist integration, and PACS routing.

Read more →
hl7-tools

Debugging HL7 ACK Failures: A Practical Guide for Integration Engineers

Step-by-step guide to diagnosing and resolving HL7 ACK failures. Covers ACK timeouts, MSA-2 mismatches, MSH mirroring errors, and AR responses — with worked examples for Mirth Connect and Rhapsody.

Read more →
hl7-tools

HL7 ACK Messages Explained: AA, AE, and AR Acknowledgment Codes in Healthcare Interfaces

Complete guide to HL7 v2.x acknowledgment messages. Understand AA, AE, and AR codes, MSH mirroring rules, the MSA segment, and how ACKs drive reliability in healthcare interfaces.

Read more →
hl7-tools

Troubleshooting Common HL7 Interface Issues: A Practical Guide

Practical guide to troubleshooting HL7 interface problems including MLLP connection errors, character encoding, delimiter conflicts, and ACK failures.

Read more →
hl7-tools

Understanding HL7 v2.x Messages: Structure, Segments, and Fields

Complete guide to HL7 v2.x message structure covering segments, fields, delimiters, message types, trigger events, and encoding rules for healthcare IT professionals.

Read more →
Learn more