TL;DR
Install the DICOM/HL7/FHIR MCP Server (pip install dicom-hl7-mcp), add it to Claude Desktop, and paste any HL7 v2.x message. Claude parses every segment, names every field, looks up table values, and explains what the message means in context. Free. No license required. The server covers 15 HL7 segment types, 200+ DICOM tags, and 20+ HL7 code tables.
The Problem
If you've worked in healthcare IT, you've done this a thousand times: someone sends you a raw HL7 message and asks "what's wrong with this?"
MSH|^~\&|RIS|RAD|EMR|HOSP|20240315140000||ORU^R01|MSG003|P|2.5.1
PID|1||MRN12345^^^HOSP^MR||DOE^JOHN||19650315|M
OBR|1|ORD001|ACC001|CTABD^CT Abdomen^L|||20240315130000
OBX|1|FT|&GDT^Report||FINDINGS: Normal CT abdomen.||||||F
You squint at pipe-delimited fields, count positions, check which table F refers to in OBX-11, and try to remember if OBR-18 is the accession number or the placer order number.
According to the
What You Get
For the message above, Claude returns a full parse with field-level detail:
| Segment | Field | Name | Value | Notes |
|---|---|---|---|---|
| MSH-9 | Message Type | ORU^R01 | Observation Result/Unsolicited | Radiology report delivery |
| PID-3 | Patient ID List | MRN12345 | Medical Record Number | Assigning authority: HOSP |
| PID-5 | Patient Name | DOE^JOHN | Last^First format | PN data type per HL7 spec |
| OBR-4 | Universal Service ID | CTABD^CT Abdomen^L | Procedure code | Local coding system (L) |
| OBX-11 | Result Status | F | Final result | |
| HL7 segments | 15 (MSH, PID, PV1, OBR, OBX, ORC, and more) | |||
| Vendor private tags | 7 vendors (GE, Siemens, Philips, Fuji, Agfa, Canon, Hologic) | Field experience | ||
| Integration patterns | 7 (ADT feed, order-to-result, IHE SWF, and more) |
|
SOCIAL SHARE CARD GENERATOR