Message Parser

Parse, validate, and explore HL7 v2 messages

A multi-pane workspace for reading, validating, and exploring HL7 v2 messages, entirely in your browser.

Load a message and the parser validates it against the HL7 v2 schema, renders it in a syntax-highlighted editor, breaks it into a field-by-field grid, and shows the schema for whatever field you select. The panes stay in sync: click a field in one and the others follow. The parser handles HL7 v2 only (v2.1 through v2.9); it does not parse v3 or FHIR.

Nothing leaves your browser

Parsing and validation run client-side in a Web Worker. The API is used only for schema and terminology lookups. Your message content is never uploaded. See the PHI Masking and Security pages for the details.

The Workspace

Screenshot coming soon
1
2
3
4
5
6

The default layout: the Messages pane on the left, the editor and Segment Grid stacked in the center, and the Details pane on the right, with PID-8 selected. The toolbar runs across the top and the status bar across the bottom.

1Toolbar with the version selector, panes menu, file open, Validate, Rules, Samples, PHI, Spec, and Docs2Messages pane listing every loaded message with its parse and validation status3Message Editor with syntax-highlighted HL7, hover, and completion4Segment Grid, one row per field, with schema columns and inline validation5Details pane showing the schema for the selected field: data type, optionality, length, table6Status bar with version, message type, segment and error/warning counts, and cursor position (Ln/Col)

The Toolbar

The toolbar across the top drives the whole workspace: the version selector, the online/offline (cloud) toggle, the panes menu, the toolbar-density toggle, file open, Validate, Rules, Samples, undo/redo/copy, the PHI masking toggle, trash, and links out to the Spec browser and these Docs (the Help button).

Screenshot coming soon

The parser toolbar: version, offline toggle (cloud), panes menu, toolbar density, file open, Validate, Rules, Samples, undo/redo/copy, PHI, trash, Spec, and Docs.

A Typical Session

1

Load a message

Paste HL7 text into the editor, drag and drop .hl7 files onto it, use the file-open button in the toolbar, or pick one from Samples. The parser also detects HL7 content on paste.

2

Let it detect the version

The version is read from MSH-12. Override it with the version selector in the toolbar to validate the same message against a different release.

3

Read the grid

The Segment Grid lists every field with its name, data type, optionality, length, table binding, and value. Validation badges flag anything the schema rejects.

4

Click a field

Selecting a field in the editor, grid, or tree selects it everywhere and opens its schema in the Details pane. Composite fields drill down to the component and subcomponent you clicked.

5

Hover for schema

Hover a field in the editor for a tooltip with its name, data type, optionality, length, item number, and section reference, plus any validation issues. Validation issues that cite a spec section (for example withdrawn or backward-compatible fields) include a "More" link that opens that section of the HL7 documentation in a popup (hidden in offline mode).

6

Complete from the tables

Press Ctrl+Space on a coded field to pick from its bound HL7 table (or a terminology match for external code systems). On a date/time field you get format snippets including "Now".

7

Validate

Turn on the Validate toggle in the toolbar to validate as you type. Findings collect in the Validation pane, grouped and filterable, each linking back to its field.

Completion and Hover

Screenshot coming soon

Ctrl+Space on PID-16 (Marital Status) lists the values from Table 0002. The Details pane shows the same field.

The editor is Monaco with an HL7 v2 language service. Typing a |, ^, or ~ opens suggestions automatically, and the colors come from one of the built-in editor themes. See the Message Editor page for the full completion and hover behavior.

Validation Layers

The Validation pane has a layers dropdown that switches between three strictness profiles: Quiet, Medium, and Strict. Quiet suppresses informational and pedantic noise; Strict promotes length and primitive-component checks to errors and additionally enables minimum-cardinality and message-structure checks; Medium is the baseline. Deep coverage of each check lives in the Validation Guide.

Example Message

Sample ADT^A01 message

HL7 v2
MSH|^~\&|ADT1|MCM|LABADT|MCM|20250225120000||ADT^A01^ADT_A01|MSG00001|P|2.5.1
EVN|A01|20250225120000
PID|1||MRN12345^^^MCM^MR||EVERYWOMAN^EVE^A||19850315|F|||153 FERNWOOD DR^^STATESVILLE^OH^35292||^PRN^PH^^1^614^5551234
PV1|1|I|GENHOSP^401^1|||ATTEND^AARON^A^^^DR|||SUR||||ADM|A0

Arranging the Panes

The panes live in a layout you can resize by dragging borders. Show or hide any pane from the panes menu in the toolbar. That is where you turn on the Tree Navigator, which is off by default. Focus mode hides everything but the editor. Your layout is saved and restored between sessions.

Screenshot coming soon

The panes menu lists every pane with a visibility toggle and a count of visible panes.

The Panes

Each pane has its own page covering its controls and interactions: