HL7v2 to FHIR translation is not a science; it is a craft with a small set of patterns that show up in almost every integration. Memorizing the patterns is what turns v2-to-FHIR translation from an ad-hoc exercise into a repeatable...
MLLP Framing: The Wire Format That Never Dies
MLLP stands for Minimal Lower-Layer Protocol, and it is the wire format that carries HL7v2 messages between systems. It was designed for TCP transport in the 1990s, and every serious HL7v2 integration still uses it today. FHIR REST...
Acknowledgment Codes: AA vs AE vs AR in Production
Every HL7v2 message expects an acknowledgment. The receiving system returns a short ACK message carrying one of three codes: AA (application accept), AE (application error), or AR (application reject). The three codes look interchangeable...
OBX Segments and Where They End Up in a FHIR Observation
OBX is the segment that carries clinical observations in HL7v2. Every lab result, vital sign, and structured measurement travels through OBX in some system. Mapping OBX to FHIR Observation is one of the most frequent translation tasks and...
PID vs Patient: What Maps and What Doesn't
The PID segment in HL7v2 and the Patient resource in FHIR describe the same person and disagree about how to say so. Most PID fields map cleanly to Patient fields; a subset maps with judgment; a handful does not map at all. Naming the...
MSH Segment: The Header That Decides How the Rest Is Parsed
The MSH segment is the header of every HL7v2 message and the single most important segment in the message. It declares the encoding characters, names the sender and receiver, identifies the event, and provides the control ID that tracks...
The ADT Event Types You Meet First in an Integration
ADT stands for Admit-Discharge-Transfer, and the ADT event types are the first HL7v2 messages every integration engineer meets. Every hospital produces them; every EHR emits them; almost every downstream system consumes some subset....
Reading an HL7v2 Message When You Only Know FHIR
The first time you open an HL7v2 message and try to read it with a FHIR developer's eyes, the thing looks like a badly-formatted CSV. Pipes everywhere, cryptic three-letter segment names, encoding characters at the top of the file. It is a...
