Reference·OBR Segment·OBR-4
HL7 v2 Reference

HL7 v2 OBR-4 (Universal Service Identifier): Format, Values, and Testing Notes

Jul 27, 2026 · 4 min read
← OBR-3 OBR-7 →

OBR-4 tells a downstream system what was actually ordered — a CBC, a chest X-ray, a specific panel. When the coding system used in OBR-4 doesn't match what the receiving system's order catalog expects, orders land in an 'unrecognized test' queue instead of routing automatically.

Quick answer

OBR-4 is the fourth field of the HL7 v2 OBR segment — the Universal Service Identifier, a coded value plus text name that identifies the specific test, panel, or procedure being requested.

What this field contains

component 1
Identifier — the coded value — a local code, LOINC code, or CPT code depending on the sending system
component 2
Text — the human-readable name of the test or procedure
component 3
Coding system — declares which code table the identifier comes from — L for local, LN for LOINC, and so on

Example

Synthetic example Generated by Synthibase
OBR|1|ORD44219^SYNTHIB|FIL98831^SYNTHIB|CBC^Complete Blood Count^L|||20260726090000|||||||||3021^HAYES^DEREK^A^^^MD||||||||CH|F||||||R/O anemia

OBR-4 carries CBC^Complete Blood Count^L — a locally coded test identifier with its text name. Synthetic order — not a real patient.

Where this trips people up

It's common to see an ordering system send OBR-4 with local codes (coding system L) while the receiving lab's catalog is built around LOINC. If the interface only maps on the identifier component and ignores the coding-system component, a local code that happens to collide numerically with an unrelated LOINC code will route the order to the wrong test. Mapping tables need to key on identifier plus coding system together, never the identifier alone.

HL7 v2 OBR Segment Guide: Fields, Format, and Testing Gotchas
Healthcare API Testing Guide: FHIR and X12
How to Write EDI Test Cases That Actually Catch Go-Live Failures
Generate orders across mixed coding systems
Synthibase generates synthetic OBR segments spanning local, LOINC, and CPT-coded service identifiers, so mapping bugs surface before go-live.
Start free trial →
This page is written independently by Synthibase for testing and informational purposes. It is not an official publication of HL7 International or X12/Washington Publishing Company, and is not a substitute for reviewing the official standard or your trading partner's companion guide. See our Terms of Service for full legal terms.