FHIR Observation Integration: Labs, Vitals, and LOINC Coding
Observation is one of the most heavily used FHIR resources - it covers everything from a single blood pressure reading to a full lab panel - and its biggest integration challenge isn't the resource structure, it's LOINC coding consistency.
What Observation covers
The FHIR Observation resource represents a single measurement or finding - a lab result, a vital sign, an imaging finding's key value, or a device reading (relevant for remote patient monitoring integrations). It carries a code (ideally LOINC-coded) identifying what was measured, a value (quantity, coded value, or component values for panel-style results), a timestamp, and a status (final, preliminary, corrected, and others that matter for knowing whether a value should be trusted yet).
LOINC coding is the real integration challenge
The Observation resource's structure is fairly consistent across systems; what varies enormously is whether the `code` field is reliably populated with a correct, specific LOINC code, or a local/proprietary code, free text, or nothing at all. This directly determines whether your integration can reliably identify 'this is a hemoglobin A1c result' programmatically versus needing manual mapping or fragile text matching - budget real time for building and maintaining a code-mapping layer rather than assuming every source system's Observations arrive cleanly LOINC-coded.
Panel results: component structure
Multi-part results (a CBC with several individual values, a metabolic panel) are typically represented as a parent Observation with `component` entries for each individual measurement, rather than as separate top-level Observations - code that only reads the top-level `value` field will miss panel results entirely. Explicitly handle the `component` array as a first-class case in any Observation-parsing code, not an edge case.
Status matters as much as value
A `preliminary` or `corrected` status changes how a value should be treated and displayed - showing a preliminary lab value with the same confidence as a final one, or failing to update a display when a corrected result supersedes an earlier one, are both real and consequential integration bugs. Track status explicitly and design your data model to represent a result's full history (preliminary, then final, then possibly corrected) rather than overwriting silently.
FAQ
Quick answers
Related solutions
Remote Patient Monitoring (RPM)
RPM and CCM platforms connecting devices, care teams, and billing-ready documentation in one workflow.
Explore this solutionIntegration & Interoperability
A standards-based healthcare data integration platform connecting EHRs, clearinghouses, labs, and pharmacies to your product - the foundation for EHR interoperability solutions and FHIR integration done right.
Explore this solution