FHIR Observation to HL7 ORU
Convert a FHIR R4 Observation (a vitals reading) into an HL7 v2 ORU^R01 results message — the format most legacy EHRs and lab interfaces still expect.
The workflow
The complete flow, exactly as it runs in the Workflow Builder. Scroll to explore, or use the zoom controls.
About this workflow
The reverse direction is just as common: a modern, FHIR-native system needs to hand a result to an older HL7 v2 receiver. This workflow takes a FHIR R4 Observation and maps it into an HL7 v2 ORU^R01 results message — the format most legacy EHRs and lab interfaces still expect.
The problem
Device gateways, monitoring platforms, and newer clinical apps increasingly produce FHIR resources natively. But plenty of receiving systems — lab interfaces, older EHR modules — only accept HL7 v2 results messages. Without a translation step, that data can't reach them at all.
How it works
An Inject node carries a synthetic FHIR Observation — a single vitals reading — directly into a Mapper step (no parser needed, since JSON is already structured). The saved mapping project wires the Observation's code, value, unit, and timestamp into the matching OBX and OBR segment positions of an HL7 v2 ORU^R01 message. A Debug node shows the fully rendered HL7 text.
Why it matters
This is the shape a results feed takes whenever a modern system needs to speak to legacy HL7 infrastructure — proving the mapping engine handles JSON-to-HL7 as cleanly as the more common HL7-to-FHIR direction.
Who it's for
Teams connecting a device gateway or FHIR-native app to an HL7 v2 receiver, or evaluating whether the mapping engine can drive output formats beyond FHIR.
How to build this workflow
Recreate it in the Workflow Builder by wiring these steps in order — or download it above and import it directly.
Step 1: Receive the Message
An Inject node carries the built-in synthetic payload straight into the flow.
Step 2: Run the Mapping
A Mapper step runs the saved mapping project, wiring the source fields into the target format directly — no parser needed, since the source is already structured.
Step 3: Confirm the Output
A Debug node shows the finished result, exactly as the mapping produced it.