For AI agents: the documentation index is at /docs/payerbox/llms.txt. A Markdown version of this page is available at /docs/payerbox/data-integration/uscdi/labs.md or by requesting it with the Accept: text/markdown header.
Payerbox Docs

Laboratory

Datasets

US Core 6.1.0 maps each USCDI element to FHIR.

DatasetUS Core 6.1.0 target profile(s)
labsUS Core Laboratory Result Observation, US Core Specimen

labs

One row per analyte result. A panel flattens: each member analyte is its own row, grouped back together by a shared diagnostic_report_id. The FHIR category is fixed to laboratory — non-lab test results belong in clinical_observations.

ColumnRequiredFormat / valuesExample
record_idYesyour stable key for this resultLAB-0001
patient_identifierYespatient keyMRN-4471903
statusYesregistered, preliminary, final, amended, corrected, cancelled, entered-in-error, unknown observation-statusfinal
loinc_codeYesLOINC us-core-laboratory-test-codes2339-0 glucose [mass/volume] in blood
value_quantityIf numericdecimal104
unitIf value_quantityUCUM ucum-commonmg/dL
value_comparatorIf censored<, <=, >=, > quantity-comparator
value_stringIf non-numerictextPOSITIVE
value_codeIf codedSNOMED CT code, with value_system (SNOMED CT assumed when empty)
data_absent_reasonIf no valueunknown, not-performed, error, etc. data-absent-reason
interpretationIf availableH high, L low, N normal, A abnormal observation-interpretationH
reference_range_lowIf availabledecimal70
reference_range_highIf availabledecimal99
effective_datetimeRecommendeddatetime, at least to the day2026-04-18T08:40:00-04:00
specimen_type_codeIf availableSNOMED CT specimen code Specimen Type119297000 blood specimen
diagnostic_report_idIf availablerecord_id of the diagnostic_reports rowDR-771
performer_npiIf available10 digits9999999991
is_deletedIf retractingtrue retracts this rowtrue
  • loinc_code is the USCDI Tests element and the one coded field with no fallback: a row without it cannot become an Observation. The binding accepts any laboratory LOINC code (http://loinc.org assumed).
  • Every row needs a result or a reason it is missing. Send exactly one of value_quantity (+ unit), value_string, or value_code; when the source has none — the test was cancelled, the specimen was unsatisfactory — data_absent_reason becomes required. A row with neither is rejected.
  • unit is not free text: US Core requires UCUM for quantity results. value_code should be SNOMED CT, e.g. 260385009 Negative for a coded qualitative result.
  • A censored numeric result — below or above the assay's detection limit — stays structured: <0.5 is value_quantity 0.5 with value_comparator <, not a value_string.
  • interpretation and the reference_range_* pair go beyond the USCDI v3.1 floor (they joined USCDI in v4), but pass them through whenever your source has them — they are what makes a bare number readable.
  • specimen_type_code is the USCDI Specimen Type element; it becomes a companion US Core Specimen resource the Observation points at, not a separate dataset you deliver.
  • diagnostic_report_id groups the analytes of one panel under a report in the diagnostic_reports dataset. A lab row is complete without it.
  • performer_npi is the resulting lab or clinician and must match a row in practitioners or organizations.

These resources are served by Patient Access, Provider Access, and Payer-to-Payer.

Last updated: