A free, in-browser HL7 v2 parser
Paste a raw HL7 v2 message and see it parsed into segments and fields — then converted to FHIR R4. It runs entirely in your browser, so you can parse real messages with PHI without uploading anything.
This is a free online HL7 v2 parser that runs 100% in your browser. Paste a raw pipe-delimited HL7 message and it parses the segments and fields it recognizes — then goes one step further and emits a valid FHIR R4 bundle, surfacing anything it can’t place rather than dropping it. Nothing is uploaded; no message leaves the page, so you can safely parse real messages that contain PHI.
What it parses
- The MSH header — encoding characters, sending/receiving app & facility, message type, version.
- The clinical segments — PID, PV1, OBX, OBR, DG1, AL1, IN1, NK1, RXE, RXA and more, split into fields, components and repeats.
- Data types — CWE/CE coded values, XPN names, XAD addresses, XTN phones, XCN providers, timestamps.
- And then it converts — the parsed message becomes FHIR R4, with anything it can’t place surfaced for review rather than dropped.
Parse & convert — live
Here is a real lab result message parsed and converted by the engine. Paste your own into the converter and watch it happen as you type.
MSH|^~\&|LAB|RIVERSIDE|ZK|MERIDIAN|20240101103000||ORU^R01|MSG1|P|2.5.1 PID|1||MRN123^^^HOSP^MR||DOE^JANE^Q||19850312|F OBR|1||ORD9|24323-8^Comprehensive metabolic panel^LN OBX|1|NM|2345-7^Glucose^LN||105|mg/dL|70-99|H|||F
{
"resourceType": "Observation",
"id": "observation-1",
"status": "final",
"category": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "laboratory",
"display": "Laboratory"
}
]
}
],
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "2345-7",
"display": "Glucose"
},
{
"system": "http://loinc.org",
"code": "2339-0",
"display": "Glucose"
}
],
"text": "Glucose"
},
"subject": {
"reference": "urn:uuid:00000000-0000-4000-8000-000000000001"
},
"valueQuantity": {
"value": 105,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"interpretation": [
{
"coding": [
{
"code": "H",
"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation",
"display": "High"
}
],
"text": "High"
}
],
"referenceRange": [
{
"low": {
"value": 70,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"high": {
"value": 99,
"unit": "mg/dL",
"system": "http://unitsofmeasure.org",
"code": "mg/dL"
},
"text": "70-99"
}
]
}Nothing needed review for this message
Every populated field above was mapped. When a field can’t be mapped, it appears here instead of being dropped — that’s the guarantee.
Why parse in the browser?
- PHI never leaves your machine. Server-side parsers mean uploading patient data; this one doesn’t, so it’s safe for real messages.
- No install, no account. Open the page, paste, done.
- It’s honest. A field it can’t map to FHIR is shown in a “needs review” panel — never silently lost.
Open the parser
Zkeleton builds conversion and data infrastructure for healthcare. This converter is free, runs entirely in your browser, and never sends a message anywhere — we keep it open because clean data plumbing should be a commodity, not a toll.