HdBe-LaboratoryTestResult

ProfileDescriptionStatusURL
HdBe-LaboratoryTestResult

A laboratory result describes the result of a laboratory analysis. These are specimen-oriented tests as performed in laboratories such as Clinical Chemistry, Serology, Microbiology, etc. In addition to the results of tests with a singular result, this concept can also contain the results of more complex tests with multiple results or a ‘panel’.

drafthttps://fhir.healthdata.be/StructureDefinition/HdBe-LaboratoryTestResult
HdBe-LaboratoryTestResult.Requester

This is a minimal defined profile on ServiceRequest to capture the requester information of the CBB LaboratoryTestResult. Although the concept Requester is not implemented in the zib profile because it is deemed unimplementable as-is, it has been implemented by this profile using a light profile on ServiceRequest. The profile does not contain enough guidance to implement a requesting service fully. It merely allows capturing the requester information in a native FHIR element.

drafthttps://fhir.healthdata.be/StructureDefinition/HdBe-LaboratoryTestResult.Requester
HdBe-LaboratoryTestResult.Specimen

Obtained specimen material or a microbial isolate that is used in a laboratory analysis.

drafthttps://fhir.healthdata.be/StructureDefinition/HdBe-LaboratoryTestResult.Specimen
HdBe-LaboratoryTestResult.Specimen.Source

Source of obtained specimen material or a microbial isolate that is used in a laboratory analysis.

drafthttps://fhir.healthdata.be/StructureDefinition/HdBe-LaboratoryTestResult.Specimen.Source

UML overview profiles



HdBe-LaboratoryTestResult

Instructions

1. Guidance on use for singular tests and panels

The CBB LaboratoryTestResult captures both singular laboratory tests and panels/clusters of multiple related tests requested together (e.g., blood gases and EBV serology)*. This profile should be used slightly different in these two situations:

  • For singular laboratory test results
    • A single instance of this profile is to be used.
    • Observation.code represents concept TestCode (the name and code of the executed test) while concept PanelOrBattery (the name and code of the compound test) is not expected to be present.
    • Observation.status represents concept TestResultStatus (the status of the test result). ResultStatus is redundant in this situation and not expected to be present.
  • For a panel or cluster:
    • There is a single instance for the overall result plus an instance for each test result.
    • The concepts Comment (Observation.note), ResultType ( Observation.category:resultType) and Performer ( Observation.performer) are repeated in the instance for the overall result and in all instances for the individual test results.
    • For the instance representing the overall result:
      • Observation.code represents concept PanelOrBattery (the name and code of the compound test), which is required for panels/clusters.
      • Observation.status represents concept ResultStatus (the overall status of the test result). This status should be in accordance with the statuses of each individual test.
      • The instances representing the individual test results are referenced using Observation.hasMember.
    • For the instances representing the individual test results:
      • Observation.code represents concept TestCode (the name and code of the executed test) for that particular test.
      • Observation.status represents concept TestResultStatus (the status of the test result) for that particular test.

Note 1: The CBB also recognizes the RelatedResult concept. This is unrelated to the use of panels/clusters. This concept is represented using Observation.extension:relatedResult.

2. Unmapped CBB concept

  • The concept InterpretationMethod is not implemented because there's no obvious mapping to FHIR while the definition is problematic, and there doesn't seem to be a use case for exchanging this information (see https://bits.nictiz.nl/browse/ZIB-1292 for more information).

3. Unmapped zib concept

  • Although the concept Requester is not implemented in the zib profile because it is deemed unimplementable as-is, it has been implemented by this profile using a light profile on ServiceRequest. The profile does not contain enough guidance to implement a requesting service fully. It merely allows capturing the requester information in a native FHIR element. The ServiceRequest is referenced by Observation.basedOn.
ReTaM

Observation.code SHOULD be populated with LOINC codes as per the subset defined by the FPS Health, for the majority of commonly used lab measurements and demands. This subset is available on the website of the FPS Health.

At least the below stated rules need to be followed.

  1. The actual observation is coded in LOINC (subset as defined by FPS Health).

    "code":{
        "coding":[
            {
                "system": "http://loinc.org",
                "code": "30341-2",
                "display": "Erythrocyte sedimentation rate"
            }
        ]
    }
    
  2. If the above is not possible, ALBERT codes are used (subset as defined by FPS Health). The NamingSystem 'https://www.ehealth.fgov.be/standards/fhir/lab/CodeSystem/albert' is used for code.coding.system.

    "code":{
        "coding":[
                {
                    "system": "https://www.ehealth.fgov.be/standards/fhir/lab/CodeSystem/albert",
                    "code": "26224",
                    "display": "Glucose (urine 24h)"
                }
            ]
        }
    
  3. If the above is not possible, other (internally used) codes plus obligatory a text element to further explain are used.

    "code":{
        "coding":[
            {
                "system": "OWNSYSTEM",
                "code": "OWNCODE",
                "display": "DISPLAYOWNCODE"
            }
        ],
        "text": "TEXTEXPLAINING"
    } 
    
  4. If the above is not possible the kind of observation may be expressed only in text (allowed but discouraged).

    "code":{
     "text": "TEXTEXPLAINING"
    } 
    

Note that the FHIR CodeableConcept data type allows multiple codes (if they represent the same concept) because code.coding is 0..*. For example, LOINC codes may be supplemented with codes from other codesystems.


url1..1System.StringFixed Value
valueReferenceReference(Observation | HdBe LaboratoryTestResult)
identifierΣ0..*Identifier
basedOnΣ I0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | HdBe LaboratoryTestResult Requester)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusΣ ?!1..1codeBinding
laboratoryCategory1..*CodeableConceptBinding
resultType0..1CodeableConceptBinding
codeΣ1..1CodeableConcept
subjectΣ I0..1Reference(Patient | Group | Device | Location | HdBe Patient)
focusΣ I0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
effectiveDateTimeΣ0..1dateTime
issuedΣ0..1instant
performerΣ I0..1pattern HealthProfessional Reference(HdBe HealthProfessional PractitionerRole)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
codingΣ1..*Coding
textΣ0..1string
codingΣ0..0Coding
textΣ0..1string
authorStringstring
authorReferenceReference(Practitioner | Patient | RelatedPerson | Organization)
timeΣ0..1dateTime
textΣ1..1markdown
bodySite0..1CodeableConcept
method0..1CodeableConceptBinding
specimenI0..1Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
deviceI0..1Reference(Device | DeviceMetric)
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
hasMemberΣ I0..*Reference(Observation | QuestionnaireResponse | MolecularSequence | HdBe LaboratoryTestResult)
derivedFromΣ I0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

url1..1System.StringFixed Value
valueReferenceReference(Observation | HdBe LaboratoryTestResult)
identifierΣ0..*Identifier
basedOnΣ I0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | HdBe LaboratoryTestResult Requester)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusΣ ?!1..1codeBinding
laboratoryCategory1..*CodeableConceptBinding
resultType0..1CodeableConceptBinding
codeΣ1..1CodeableConcept
subjectΣ I0..1Reference(Patient | Group | Device | Location | HdBe Patient)
focusΣ I0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
effectiveDateTimeΣ0..1dateTime
issuedΣ0..1instant
performerΣ I0..1pattern HealthProfessional Reference(HdBe HealthProfessional PractitionerRole)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
codingΣ1..*Coding
textΣ0..1string
codingΣ0..0Coding
textΣ0..1string
authorStringstring
authorReferenceReference(Practitioner | Patient | RelatedPerson | Organization)
timeΣ0..1dateTime
textΣ1..1markdown
bodySite0..1CodeableConcept
method0..1CodeableConceptBinding
specimenI0..1Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
deviceI0..1Reference(Device | DeviceMetric)
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
hasMemberΣ I0..*Reference(Observation | QuestionnaireResponse | MolecularSequence | HdBe LaboratoryTestResult)
derivedFromΣ I0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

url1..1System.StringFixed Value
valueReferenceReference(Observation | HdBe LaboratoryTestResult)
identifierΣ0..*Identifier
basedOnΣ I0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest | HdBe LaboratoryTestResult Requester)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy)
statusΣ ?!1..1codeBinding
laboratoryCategory1..*CodeableConceptBinding
resultType0..1CodeableConceptBinding
codeΣ1..1CodeableConcept
subjectΣ I0..1Reference(Patient | Group | Device | Location | HdBe Patient)
focusΣ I0..*Reference(Resource)
encounterΣ I0..1Reference(Encounter)
effectivePeriodPeriod
effectiveTimingTiming
effectiveInstantinstant
effectiveDateTimeΣ0..1dateTime
issuedΣ0..1instant
performerΣ I0..1pattern HealthProfessional Reference(HdBe HealthProfessional PractitionerRole)
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
codingΣ1..*Coding
textΣ0..1string
codingΣ0..0Coding
textΣ0..1string
authorStringstring
authorReferenceReference(Practitioner | Patient | RelatedPerson | Organization)
timeΣ0..1dateTime
textΣ1..1markdown
bodySite0..1CodeableConcept
method0..1CodeableConceptBinding
specimenI0..1Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
deviceI0..1Reference(Device | DeviceMetric)
lowI0..1SimpleQuantity
highI0..1SimpleQuantity
type0..1CodeableConceptBinding
appliesTo0..*CodeableConcept
ageI0..1Range
text0..1string
hasMemberΣ I0..*Reference(Observation | QuestionnaireResponse | MolecularSequence | HdBe LaboratoryTestResult)
derivedFromΣ I0..*Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence)
codeΣ1..1CodeableConcept
valueQuantityQuantity
valueCodeableConceptCodeableConcept
valueStringstring
valueBooleanboolean
valueIntegerinteger
valueRangeRange
valueRatioRatio
valueSampledDataSampledData
valueTimetime
valueDateTimedateTime
valuePeriodPeriod
dataAbsentReasonI0..1CodeableConceptBinding
interpretation0..*CodeableConceptBinding
referenceRange0..*see (referenceRange)

Mapping FHIR profile to CBB

PathmapCBBcomment
ObservationLaboratoryTestResultHdBe-LaboratoryTestResult
ObservationLaboratoryTestResult.LaboratoryTestHdBe-LaboratoryTestResult
Observation.extension:relatedResult.value[x]LaboratoryTestResult.RelatedResultHdBe-LaboratoryTestResult
Observation.basedOnLaboratoryTestResult.RequesterHdBe-LaboratoryTestResultimplicit (main mapping on the referenced ServiceRequest.requester)
Observation.statusLaboratoryTestResult.ResultStatusHdBe-LaboratoryTestResult
Observation.statusLaboratoryTestResult.LaboratoryTest.TestResultStatusHdBe-LaboratoryTestResult
Observation.category:resultTypeLaboratoryTestResult.ResultTypeHdBe-LaboratoryTestResult
Observation.codeLaboratoryTestResult.PanelOrBatteryHdBe-LaboratoryTestResult
Observation.codeLaboratoryTestResult.LaboratoryTest.TestCodeHdBe-LaboratoryTestResult
Observation.effective[x]:effectiveDateTimeLaboratoryTestResult.LaboratoryTest.TestDateTimeHdBe-LaboratoryTestResult
Observation.performer:performerLaboratoryTestResult.Performer.HealthProfessionalHdBe-LaboratoryTestResult
Observation.value[x]LaboratoryTestResult.LaboratoryTest.TestResultHdBe-LaboratoryTestResult
Observation.interpretation:resultFlagsLaboratoryTestResult.LaboratoryTest.ResultFlagsHdBe-LaboratoryTestResult
Observation.interpretation:resultInterpretation.textLaboratoryTestResult.LaboratoryTest.ResultInterpretationHdBe-LaboratoryTestResult
Observation.note.textLaboratoryTestResult.LaboratoryTest.CommentHdBe-LaboratoryTestResult
Observation.methodLaboratoryTestResult.LaboratoryTest.TestMethodHdBe-LaboratoryTestResult
Observation.specimenLaboratoryTestResult.SpecimenHdBe-LaboratoryTestResult
Observation.referenceRange.lowLaboratoryTestResult.LaboratoryTest.ReferenceRangeLowerLimitHdBe-LaboratoryTestResult
Observation.referenceRange.highLaboratoryTestResult.LaboratoryTest.ReferenceRangeUpperLimitHdBe-LaboratoryTestResult
Observation.referenceRange.textLaboratoryTestResult.LaboratoryTest.ReferenceRangeLowerLimitHdBe-LaboratoryTestResult
Observation.referenceRange.textLaboratoryTestResult.LaboratoryTest.ReferenceRangeUpperLimitHdBe-LaboratoryTestResult

zib LaboratoryTestResult difference

Concept Category Description
status terminology Replaced FHIR ValueSet with ValueSet-TestResultStatus as this is a subset of the FHIR valueset.
status terminology Removed ConceptMap as we replaced the ValueSet values to the FHIR ValueSet.
status terminology Replaced zib CodeSystem values to corresponding values from the FHIR ObservationStatus CodeSystem because these are more widely adopted and can be mapped to zib status terminology. The new ValueSet contains a subset of the ObservationStatus CodeSystem to maintain compatibility with the zib.
code terminology Removed ValueSet binding and described in the comment the use of Loinc and Albert codes as per the subset defined by the FPS Health (ReTaM). Added a reference to the subset on the website of the FPS Health. The ReTaM codes are not duplicated in a FHIR ValueSet because this would require extensive maintenance in keeping the ValueSet up-to-date.
value[x] textual Added textual guidance to include the unit for quantitative results.
performer reference Changed reference from HealthcareOrganization to a reference to HealthProfessional to assign a person responsible for the LaboratoryTestResult instead of the Laboratory (the HealthcareOrganization can be obtained through the HealthProfessional).
interpretation.resultFlags terminology Added ConceptMap ResultFlagsCodelist-to-ObservationInterpretation (seems missing in the current zib profile implementation).
interpretation.resultFlags terminology Removed concepts 'Resistent', 'Intermediate' and 'Susceptible' from the ValueSet. These codes are seen as a quantitative result. (zib ticket #1555)
interpretation.resultFlags textual Removed notion of 'Resistent', 'Intermediate' and 'Susceptible' codes in definition.
referenceRange.text mapping Added mapping to ReferenceRangeLowerLimit and ReferenceRangeUpperLimit for when the quantaty datatype does not suffice.
basedOn mapping Added mapping to a new profile on ServiceRequest to implement the requester element of the CBB/zib. Although this element does not provide enough information to create a profile that describes a full ordering service, it will provide details on capturing a requester in FHIR.



HdBe-LaboratoryTestResult.Specimen

Instructions

The Specimen concept from the CBB LaboratoryTestResult contains a concept for SpecimenMaterial and for Microorganism. These two concepts cannot be represented in the same Specimen resources; if there's a need to communicate both the microorganism and the sample material from which it was isolated, two instances need to be used. The instance representing the microorganism should refer to the instance respresenting the sample material using Specimen.parent. All other CBB concepts should be repeated in both resources.


identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location | HdBe LaboratoryTestResult.Specimen.Source)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
requestI0..*Reference(ServiceRequest)
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimeΣ0..1dateTime
collectedPeriodΣ0..1Period
durationΣ I0..1DurationBinding
quantityI0..1SimpleQuantity
method0..1CodeableConceptBinding
url1..1System.StringFixed Value
valueCodeableConceptCodeableConcept
morphologyI0..1Extension(CodeableConcept)
codingΣ0..*Coding
textΣ0..1string
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
description0..1string
procedure0..1CodeableConcept
additiveI0..*Reference(Substance)
timeDateTimedateTime
timePeriodPeriod
url1..1System.StringFixed Value
valueIntegerinteger
identifierΣ0..*Identifier
description0..1string
type0..1CodeableConceptBinding
capacityI0..1SimpleQuantity
specimenQuantityI0..1SimpleQuantity
additiveCodeableConceptCodeableConcept
additiveReferenceReference(Substance)
conditionΣ0..*CodeableConceptBinding
authorStringstring
authorReferenceReference(Practitioner | Patient | RelatedPerson | Organization)
timeΣ0..1dateTime
textΣ1..1markdown

identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location | HdBe LaboratoryTestResult.Specimen.Source)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
requestI0..*Reference(ServiceRequest)
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimeΣ0..1dateTime
collectedPeriodΣ0..1Period
durationΣ I0..1DurationBinding
quantityI0..1SimpleQuantity
method0..1CodeableConceptBinding
url1..1System.StringFixed Value
valueCodeableConceptCodeableConcept
morphologyI0..1Extension(CodeableConcept)
codingΣ0..*Coding
textΣ0..1string
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
description0..1string
procedure0..1CodeableConcept
additiveI0..*Reference(Substance)
timeDateTimedateTime
timePeriodPeriod
url1..1System.StringFixed Value
valueIntegerinteger
identifierΣ0..*Identifier
description0..1string
type0..1CodeableConceptBinding
capacityI0..1SimpleQuantity
specimenQuantityI0..1SimpleQuantity
additiveCodeableConceptCodeableConcept
additiveReferenceReference(Substance)
conditionΣ0..*CodeableConceptBinding
authorStringstring
authorReferenceReference(Practitioner | Patient | RelatedPerson | Organization)
timeΣ0..1dateTime
textΣ1..1markdown

identifierΣ0..*Identifier
accessionIdentifierΣ0..1Identifier
statusΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
subjectΣ I0..1Reference(Patient | Group | Device | Substance | Location | HdBe LaboratoryTestResult.Specimen.Source)
receivedTimeΣ0..1dateTime
parentI0..*Reference(Specimen | HdBe LaboratoryTestResult.Specimen)
requestI0..*Reference(ServiceRequest)
collectorΣ I0..1Reference(Practitioner | PractitionerRole)
collectedDateTimeΣ0..1dateTime
collectedPeriodΣ0..1Period
durationΣ I0..1DurationBinding
quantityI0..1SimpleQuantity
method0..1CodeableConceptBinding
url1..1System.StringFixed Value
valueCodeableConceptCodeableConcept
morphologyI0..1Extension(CodeableConcept)
codingΣ0..*Coding
textΣ0..1string
fastingStatusCodeableConceptCodeableConcept
fastingStatusDurationDuration
description0..1string
procedure0..1CodeableConcept