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)

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.

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.

Learn more