LabResult

This FHIR resource represents a clinical document that presents the results of laboratory tests performed on a patient’s biological samples, such as blood, urine, or tissue. It typically includes patient information, the type of test(s) conducted, test results (with reference ranges), interpretation or comments from the laboratory, and the date and time of sample collection and analysis.

Business Information Model

labresult

Key Design Considerations

Investigation is referenced in both LabResult and RadiologyReport. As such, the category will be used to differentiate investigations for lab results and radiology reports. In this case, the category.coding.code should be fixed to laboratory.

Resource Structure

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textC0..1Narrative
containedC0..*Resource
extensionC0..*Extension
modifierExtensionΣ ?! C0..0Extension
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uri
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
basedOnC1..1Reference(ServiceRequest)
statusΣ ?!1..1codeBinding
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ C1..1codePattern
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
subjectΣ C1..1Reference(Patient)
encounterΣ C1..1Reference(Encounter)
effectiveDateTimedateTime
issuedΣ0..1instant
performerΣ C0..1Reference(Location)
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ0..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
specimenC0..1Reference(Specimen)
id0..1string
extensionC0..*Extension
referenceΣ C1..1string
typeΣ0..1uriBinding
identifierΣ C0..1Identifier
displayΣ C0..1string
note0..1Annotation
studyC0..0Reference(GenomicStudy | ImagingStudy)
compositionC0..0Reference(Composition)
conclusion0..0markdown
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..0string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
presentedFormC0..*Attachment
idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ1..1canonical(StructureDefinition)Fixed Value
securityΣ C0..*CodingBinding
tagΣ C0..*Coding
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textC0..1Narrative
containedC0..*Resource
extensionC0..*Extension
modifierExtensionΣ ?! C0..0Extension
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
id0..0string
extensionC0..0Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierΣ C0..1Identifier
displayΣ C0..1string
partOfΣ C0..0Reference(GenomicStudy | ImagingStudy | Immunization | MedicationAdministration | MedicationDispense | MedicationStatement | Procedure)
statusΣ ?!1..1codeBindingPattern
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uri
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ1..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
focusΣ C0..0Reference(Resource)
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ1..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
issuedΣ0..0instant
id0..0string
extensionC0..0Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ1..1string
systemΣ C1..1uri
codeΣ C1..1code
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
id0..0string
extensionC0..0Extension
textΣ1..1string
note0..1Annotation
bodyStructureC0..0Reference(BodyStructure)
specimenC0..1Reference(Specimen)
deviceC0..0Reference(Device)
id0..0string
extensionC0..0Extension
modifierExtensionΣ ?! C0..0Extension
lowC0..0SimpleQuantity
highC0..0SimpleQuantity
normalValue0..0CodeableConceptBinding
type0..0CodeableConceptBinding
appliesTo0..0CodeableConcept
ageC0..0Range
textC1..1markdown
hasMemberΣ C0..0Reference(MolecularSequence | Observation | QuestionnaireResponse)
derivedFromΣ C0..0Reference(DocumentReference | GenomicStudy | ImagingSelection | ImagingStudy | MolecularSequence | Observation | QuestionnaireResponse)
id0..0string
extensionC0..0Extension
modifierExtensionΣ ?! C0..0Extension
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uri
versionΣ0..0string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
valueQuantityQuantity
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
id0..0string
extensionC0..0Extension
codingΣ C0..0Coding
textΣ1..1string
referenceRange0..1see (referenceRange)
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textC0..1Narrative
containedC0..*Resource
orderingInstitutionC0..1Extension(Reference(Organization))
modifierExtensionΣ ?! C0..*Extension
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
instantiatesCanonicalΣ0..0canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..0uri
basedOnΣ C0..0Reference(CarePlan | MedicationRequest | ServiceRequest)
replacesΣ C0..0Reference(ServiceRequest)
requisitionΣ C0..0Identifier
statusΣ ?!1..1codeBindingPattern
intentΣ ?!1..1codeBindingPattern
categoryΣ0..0CodeableConcept
priorityΣ0..0codeBinding
doNotPerformΣ ?!0..0boolean
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ1..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uriFixed Value
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
focusΣ C0..0Reference(Resource)
authoredOnΣ1..1dateTime
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ1..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uri
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
performerTypeΣ0..0CodeableConcept
performerΣ C0..0Reference(Practitioner)
locationΣ0..0CodeableReference(Location)
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
referenceΣ C0..0Reference
insuranceC0..0Reference(ClaimResponse | Coverage)
supportingInfo0..0CodeableReference(Resource)
specimenΣ C0..0Reference(Specimen)
bodyStructureΣ C0..0Reference(BodyStructure)
idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
textC0..1Narrative
containedC0..*Resource
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
identifierΣ C0..0Identifier
accessionIdentifierΣ C0..0Identifier
statusΣ ?!0..0codeBinding
id0..0string
extensionC0..0Extension
id0..0string
extensionC0..0Extension
systemΣ1..1uriFixed Value
versionΣ0..1string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
subjectΣ C0..0Reference(Patient)
receivedTimeΣ0..1dateTime
parentC0..0Reference(Specimen)
id0..0string
extensionC0..0Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ C0..0Identifier
displayΣ C0..0string
combinedΣ0..0codeBinding
role0..0CodeableConceptBinding
id0..0string
extensionC0..0Extension
modifierExtensionΣ ?! C0..0Extension
id0..0string
extensionC0..0Extension
referenceΣ C0..0string
typeΣ1..1uriBindingFixed Value
id0..0string
extensionC0..0Extension
useΣ ?!0..0codeBinding
typeΣ0..0CodeableConceptBinding
systemΣ1..1uri
valueΣ C1..1string
periodΣ C0..0Period
assignerΣ C0..0Reference(Organization)
displayΣ C0..0string
id0..1string
extensionC0..0Extension
value0..1System.DateTime
durationΣ C0..0Duration
id0..0string
extensionC0..0Extension
valueΣ1..1decimal
comparatorΣ ?!0..0codeBinding
unitΣ0..1string
systemΣ C0..1uri
codeΣ C0..1code
id0..0string
guidanceC0..1Extension(string)
id0..0string
extensionC0..0Extension
systemΣ1..1uri
versionΣ0..0string
codeΣ C1..1code
displayΣ C1..1string
userSelectedΣ0..0boolean
textΣ0..0string
device0..0CodeableReference(Device)
id0..0string
extensionC0..0Extension
referenceΣ C1..1string
typeΣ0..0uriBinding
identifierΣ C0..0Identifier
displayΣ C0..0string
id0..0string
extensionC0..0Extension
modifierExtensionΣ ?! C0..0Extension
description0..0string
method0..0CodeableConcept
additiveC0..0Reference(Substance)
timeDateTimedateTime
conditionΣ0..0CodeableConceptBinding
note0..1Annotation

API Specification

See DiagnosticReport.$submit for the API specification to submit lab results.

Terminologies

PathBinding StrengthValue Set (Code System)Description
DiagnosticReport.languagerequiredhttp://hl7.org/fhir/ValueSet/all-languages|5.0.0

IETF language tag for a human language

DiagnosticReport.statusrequiredhttp://hl7.org/fhir/ValueSet/diagnostic-report-status|5.0.0

The status of the diagnostic report.

DiagnosticReport.categoryrequiredhttp://hl7.org/fhir/ValueSet/diagnostic-service-sections

HL7 V2 table 0074

DiagnosticReport.codepreferredhttp://hl7.org/fhir/ValueSet/report-codes

LOINC Codes for Diagnostic Reports

DiagnosticReport.resultsInterpreter.typeextensiblehttp://hl7.org/fhir/ValueSet/resource-types

Aa resource (or, for logical models, the URI of the logical model).

DiagnosticReport.result.typeextensiblehttp://hl7.org/fhir/ValueSet/resource-types

Aa resource (or, for logical models, the URI of the logical model).

DiagnosticReport.supportingInfo.typeexamplehttp://terminology.hl7.org/ValueSet/v2-0936

The code value for the role of the supporting information in the diagnostic report.

DiagnosticReport.conclusionCoderequiredhttps://fhir.synapxe.sg/ValueSet/abnormal-flag

SNOMED CT Clinical Findings

XML to FHIR Mapping

XML element FHIR mapping
labResult/recordIdentifier DiagnosticReport.identifier
labResult/accessionNumber DiagnosticReport.identifier
labResult/eventID DiagnosticReport.encounter.identifier
labResult/investigationType DiagnosticReport.category
labResult/investigationSubType DiagnosticReport.extension:investigationSubType
labResult/investigation DiagnosticReport.result → Observation
labResult/investigation/investigationIdentifier DiagnosticReport.result → Observation.identifier
labResult/investigation/labInstitution DiagnosticReport.result → Observation.performer.identifier
labResult/investigation/labFacilityUnit DiagnosticReport.result → Observation.performer.display
labResult/investigation/order/orderDateTime DiagnosticReport.result → Observation.basedOn → ServiceRequest.authoredOn
labResult/investigation/order/orderNo DiagnosticReport.result → Observation.basedOn → ServiceRequest.identifier
labResult/investigation/order/orderInstitution DiagnosticReport.result → Observation.basedOn → ServiceRequest.requester.identifier
labResult/investigation/order/reasonForInvestigation DiagnosticReport.result → Observation.basedOn → ServiceRequest.reason.concept
labResult/investigation/order/orderedBy/id DiagnosticReport.result → Observation.basedOn → ServiceRequest.requester.identifier
labResult/investigation/order/orderedBy/name DiagnosticReport.result → Observation.basedOn → ServiceRequest.requester.display
labResult/investigation/specimenCollectedDate DiagnosticReport.result → Observation.basedOn → ServiceRequest.specimen.collection.collectedDateTime
labResult/investigation/specimenReceivedDate DiagnosticReport.result → Observation.basedOn → ServiceRequest.specimen.receivedTime
labResult/investigation/comments DiagnosticReport.result → Observation.basedOn → ServiceRequest.specimen.note.text
labResult/investigation/examinationDate DiagnosticReport.result → Observation.basedOn → ServiceRequest.specimen.processing.timeDateTime
labResult/investigation/textValue DiagnosticReport.result → Observation.basedOn → ServiceRequest.specimen.processing.description
labResult/investigation/reportDateTime DiagnosticReport.result → Observation.effectiveDateTime
labResult/investigation/reportedBy/id DiagnosticReport.result → Observation.performer.identifier
labResult/investigation/reportedBy/name DiagnosticReport.result → Observation.performer.display
labResult/investigation/abnormalFlag DiagnosticReport.result → Observation.interpretation
labResult/investigation/name DiagnosticReport.result → Observation.code
labResult/investigation/labTestCode DiagnosticReport.result → Observation.extension:labTest.code
labResult/investigation/labTestCodedDescription DiagnosticReport.result → Observation.extension:labTest.display
labResult/investigation/resultStatus DiagnosticReport.result → Observation.status
labResult/investigation/investigationItem/investigationItemIdentifier DiagnosticReport.result → Observation.identifier
labResult/investigation/investigationItem/itemName DiagnosticReport.result → Observation.code
labResult/investigation/investigationItem/labTestItemCode DiagnosticReport.result → Observation.extension:labTest.code
labResult/investigation/investigationItem/labTestItemCodedDescription DiagnosticReport.result → Observation.extension:labTest.description
labResult/investigation/investigationItem/itemNumericValue DiagnosticReport.result → Observation.valueQuantity.value
labResult/investigation/investigationItem/itemNumericValueUOM DiagnosticReport.result → Observation.valueQuantity.code
labResult/investigation/investigationItem/itemTextValue DiagnosticReport.result → Observation.valueString
labResult/investigation/investigationItem/resultStatus DiagnosticReport.result → Observation.status
labResult/investigation/investigationItem/abnormalFlag DiagnosticReport.result → Observation.interpretation
labResult/investigation/investigationItem/referenceRange DiagnosticReport.result → Observation.referenceRange.text
labResult/investigation/investigationItem/interpretationNotes DiagnosticReport.result → Observation.note.text
labResult/investigation/investigationItem/POCTIndicator DiagnosticReport.result → Observation.extension:POCIndicator