GA USABook a call ↗
← All implementation perspectives

IntegrationOctober 8, 20264 min read

Most lab interfaces fail at the terminology layer

When a lab interface fails, the first instinct is to look at the transport: the connection, the queue, the HL7 parser. Those do fail. But in most integrations we have worked on, the problems that cost the most time sit one layer up, in terminology.

A result is only as useful as its code

Consider a fasting glucose result. Inside the lab information system it might be called GLU-F. That code works perfectly inside the lab. The moment the result leaves, it needs to become something every receiver understands. For lab results in the United States, that usually means a LOINC code, such as 1558-6 for fasting glucose measured as mass per volume in serum or plasma.

If the mapping from GLU-F to 1558-6 exists and is correct, the result flows. If it does not, the result either fails validation or, worse, passes through with only a local code and quietly disappears from every downstream report that filters on LOINC.

Three failure patterns

New local codes with no mapping. Labs add tests and rename codes. If nobody updates the mapping table, every result with the new code is orphaned. The interface keeps running, so nobody notices for weeks.

Units that contradict the code. LOINC distinguishes between mass concentration and molar concentration. A glucose value reported in mmol/L does not belong under a mass-per-volume code. Either the value is converted using UCUM, or the result is coded with the moles-per-volume equivalent (14771-0 for fasting glucose). Mixing them is a clinical-safety problem, not a formatting issue.

Mappings nobody owns. A spreadsheet maintained by one analyst is not a terminology service. When that person moves on, the knowledge of why a code was mapped a certain way goes with them.

What good looks like

  • Treat mappings as governed artifacts. In FHIR terms, a ConceptMap with a version, an owner and a review history.
  • Quarantine, don't drop. When a code has no mapping, hold the message in a visible queue, alert someone, and replay it once the mapping is fixed.
  • Validate the meaning, not just the shape. Structural FHIR validation will tell you a valueQuantity is well formed. It will not tell you the unit contradicts the code unless you check for it.

Nomalix Scan, in the Lab, gives a first look at the structure of a synthetic record before it reaches an interface like this.

More perspectives