Point-of-Care Device Implementation Guide
current - CI Build International flag

Point-of-Care Device Implementation Guide, published by HL7 International - Devices Work Group. This is not an authorized publication; it is the continuous build for version current). This version is based on the current content of https://github.com/HL7/uv-pocd/ and changes regularly. See the Directory of published versions

Resource Profile: SampleArrayObservation - Mappings

Draft as of 2022-01-21

Mappings for the SampleArrayObservation resource profile.

Mappings for IEEE 11073-10201 DIM (urn:iso:std:iso:11073:10201)

SampleArrayObservation
Observation
   meta
      securitySampleArray::Sa-Observed-Value::state or SampleArray::Compound-Sa-Observed-Value::state (refer to MeasurementStatus mapping details)
   code
      coding
         codeMetric::Metric-Id or SampleArray::Sa-Observed-Value::metric-id
   effective[x]
   effective[x] (effectiveDateTime)
   effective[x] (effectivePeriod)
      startMetric::Start-Time
      endMetric::Stop-Time
   value[x]
   value[x] (valueSampledData)
      dataSampleArray::Sa-Observed-Value::array
   interpretationSampleArray::Sa-Observed-Value::state (refer to MeasurementStatus mapping details)
   referenceRange
      lowSampleArray::Sa-Physiological-Range::lower-scaled-value (convert to absolute value)
      highSampleArray::Sa-Physiological-Range::upper-scaled-value (convert to absolute value)
   component
      code
         coding
            codeSampleArray::Compound-Sa-Observed-Value::metric-id
      value[x]
      value[x] (valueSampledData)
         dataSampleArray::Compound-Sa-Observed-Value::array
      interpretationSampleArray::Compound-Sa-Observed-Value::state (refer to MeasurementStatus mapping details)
      referenceRange
         lowSampleArray::Sa-Physiological-Range::lower-scaled-value (convert to absolute value)
         highSampleArray::Sa-Physiological-Range::upper-scaled-value (convert to absolute value)

Mappings for IEEE 11073-10207 SDC (urn:iso:std:iso:11073:10207)

SampleArrayObservation
Observation
   meta
      securitySampleArrayValue/MetricQuality/Validity (refer to Measurement Validity mapping details)
   code
      coding
         systemDistributionSampleArrayMetricDescriptor/Type/CodingSystem, RealTimeSampleArrayMetricDescriptor/Type/CodingSystem
         versionDistributionSampleArrayMetricDescriptor/Type/CodingSystemVersion, RealTimeSampleArrayMetricDescriptor/Type/CodingSystemVersion
         codeDistributionSampleArrayMetricDescriptor/Type/Code, RealTimeSampleArrayMetricDescriptor/Type/Code
   effective[x]
   effective[x] (effectiveDateTime)SampleArrayValue/DeterminationTime
   effective[x] (effectivePeriod)
      startSampleArrayValue/StartTime
      endSampleArrayValue/StopTime
   value[x]
   value[x] (valueSampledData)
      dataSampleArrayValue/Samples
   dataAbsentReasonSampleArrayValue/MetricQuality/Validity (refer to Measurement Validity mapping details)
   interpretationSampleArrayValue/MetricQuality/Validity (refer to Measurement Validity mapping details)
   bodySite
      coding
         systemDistributionSampleArrayMetricState/BodySite/CodingSystem, RealTimeSampleArrayMetricState/BodySite/CodingSystem
         versionDistributionSampleArrayMetricState/BodySite/CodingSystemVersion, RealTimeSampleArrayMetricState/BodySite/CodingSystemVersion
         codeDistributionSampleArrayMetricState/BodySite/Code, RealTimeSampleArrayMetricState/BodySite/Code
   referenceRange
      lowDistributionSampleArrayMetricState/PhysiologicalRange/Lower, RealTimeSampleArrayMetricState/PhysiologicalRange/Lower
      highDistributionSampleArrayMetricState/PhysiologicalRange/Upper,RealTimeSampleArrayMetricState/PhysiologicalRange/Upper

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

SampleArrayObservation
ObservationEvent
   identifierEvent.identifier
   basedOnEvent.basedOn
   partOfEvent.partOf
   statusEvent.status
   codeEvent.code
   subjectEvent.subject
   encounterEvent.context
   effective[x]Event.occurrence[x]
   effective[x] (effectiveDateTime)Event.occurrence[x]
   effective[x] (effectivePeriod)Event.occurrence[x]
   performerEvent.performer.actor

Mappings for SNOMED CT Concept Domain Binding (http://snomed.info/conceptdomain)

SampleArrayObservation
Observation< 363787002 |Observable entity|
   status< 445584004 |Report by finality status|
   code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
   value[x]< 441742003 |Evaluation finding|
   value[x] (valueSampledData)< 441742003 |Evaluation finding|
   interpretation< 260245000 |Findings values|
   bodySite< 123037004 |Body structure|
   specimen< 123038009 |Specimen|
   device< 49062001 |Device|
   referenceRange
      type< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
      appliesTo< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
   component
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x]363714003 |Interprets| < 441742003 |Evaluation finding|
      value[x] (valueSampledData)363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|
      referenceRange
         type< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|
         appliesTo< 260245000 |Findings values| OR < 365860008 |General clinical state finding| OR < 250171008 |Clinical history or observation findings| OR < 415229000 |Racial group| OR < 365400002 |Finding of puberty stage| OR < 443938003 |Procedure carried out on subject|

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

SampleArrayObservation
ObservationOBX
   identifierOBX.21 For OBX segments from systems without OBX-21 support a combination of ORC/OBR and OBX must be negotiated between trading partners to uniquely identify the OBX segment. Depending on how V2 has been implemented each of these may be an option: 1) OBR-3 + OBX-3 + OBX-4 or 2) OBR-3 + OBR-4 + OBX-3 + OBX-4 or 2) some other way to uniquely ID the OBR/ORC + OBX-3 + OBX-4.
   basedOnORC
   partOfVaries by domain
   statusOBX-11
   codeOBX-3
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   subjectPID-3
   focusOBX-3
   encounterPV1
   effective[x]OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)
   effective[x] (effectiveDateTime)OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)
   effective[x] (effectivePeriod)OBX-14, and/or OBX-19 after v2.4 (depends on who observation made)
      startDR.1
      endDR.2
   issuedOBR.22 (or MSH.7), or perhaps OBX-19 (depends on who observation made)
   performerOBX.15 / (Practitioner) OBX-16, PRT-5:PRT-4='RO' / (Device) OBX-18 , PRT-10:PRT-4='EQUIP' / (Organization) OBX-23, PRT-8:PRT-4='PO'
   value[x]OBX.2, OBX.5, OBX.6
   value[x] (valueSampledData)OBX.2, OBX.5, OBX.6
      origin
         valueSN.2 / CQ - N/A
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
   dataAbsentReasonN/A
   interpretationOBX-8
   noteNTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)
   bodySiteOBX-20
      codingC*E.1-8, C*E.10-22
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
      textC*E.9. But note many systems use C*E.2 for this
   methodOBX-17
   specimenSPM segment
   deviceOBX-17 / PRT -10
   referenceRangeOBX.7
      lowOBX-7
      highOBX-7
      typeOBX-10
      appliesToOBX-10
      textOBX-7
   hasMemberRelationships established by OBX-4 usage
   derivedFromRelationships established by OBX-4 usage
   componentcontainment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
            systemC*E.3
            versionC*E.7
            codeC*E.1
            displayC*E.2 - but note this is not well followed
            userSelectedSometimes implied by being first
         textC*E.9. But note many systems use C*E.2 for this
      value[x]OBX.2, OBX.5, OBX.6
      value[x] (valueSampledData)OBX.2, OBX.5, OBX.6
         origin
            valueSN.2 / CQ - N/A
            unit(see OBX.6 etc.) / CQ.2
            system(see OBX.6 etc.) / CQ.2
            code(see OBX.6 etc.) / CQ.2
      dataAbsentReasonN/A
      interpretationOBX-8
      referenceRangeOBX.7
         lowOBX-7
         highOBX-7
         typeOBX-10
         appliesToOBX-10
         textOBX-7

Mappings for RIM Mapping (http://hl7.org/v3)

SampleArrayObservation
ObservationEntity. Role, or Act, Observation[classCode=OBS, moodCode=EVN]
   meta
      idn/a
      extensionn/a
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   identifierid
   basedOn.inboundRelationship[typeCode=COMP].source[moodCode=EVN]
   partOf.outboundRelationship[typeCode=FLFS].target
   statusstatus Amended & Final are differentiated by whether it is the subject of a ControlAct event with a type of "revise"
   category.outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
   codecode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   subjectparticipation[typeCode=RTGT]
   focusparticipation[typeCode=SBJ]
   encounterinboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   effective[x]effectiveTime
   effective[x] (effectiveDateTime)effectiveTime
   effective[x] (effectivePeriod)effectiveTime
      idn/a
      extensionn/a
      start./low
      end./high
   issuedparticipation[typeCode=AUT].time
   performerparticipation[typeCode=PRF]
   value[x]value
   value[x] (valueSampledData)value
      idn/a
      extensionn/a
      originSLIST.origin
         idn/a
         extensionn/a
         valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         unitPQ.unit
         systemCO.codeSystem, PQ.translation.codeSystem
         codePQ.code, MO.currency, PQ.translation.code
      periodGLIST.increment
      factorSLIST.factor
      lowerLimitN/A (use SLIST.digits.nullFlavor)
      upperLimitN/A (use SLIST.digits.nullFlavor)
      dimensionsN/A (fixed to 1)
      dataSLIST.digits
   dataAbsentReasonvalue.nullFlavor
   interpretationinterpretationCode
   notesubjectOf.observationEvent[code="annotation"].value
   bodySitetargetSiteCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   methodmethodCode
   specimenparticipation[typeCode=SPC].specimen
   deviceparticipation[typeCode=DEV]
   referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
      idn/a
      extensionn/a
      modifierExtensionN/A
      lowvalue:IVL_PQ.low
      highvalue:IVL_PQ.high
      typeinterpretationCode
      appliesTointerpretationCode
      ageoutboundRelationship[typeCode=PRCN].targetObservationCriterion[code="age"].value
      textvalue:ST
   hasMemberoutBoundRelationship
   derivedFrom.targetObservation
   componentoutBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      value[x]value
      value[x] (valueSampledData)value
         idn/a
         extensionn/a
         originSLIST.origin
            idn/a
            extensionn/a
            valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
            unitPQ.unit
            systemCO.codeSystem, PQ.translation.codeSystem
            codePQ.code, MO.currency, PQ.translation.code
         periodGLIST.increment
         factorSLIST.factor
         lowerLimitN/A (use SLIST.digits.nullFlavor)
         upperLimitN/A (use SLIST.digits.nullFlavor)
         dimensionsN/A (fixed to 1)
         dataSLIST.digits
      dataAbsentReasonvalue.nullFlavor
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
         idn/a
         extensionn/a
         modifierExtensionN/A
         lowvalue:IVL_PQ.low
         highvalue:IVL_PQ.high
         typeinterpretationCode
         appliesTointerpretationCode
         ageoutboundRelationship[typeCode=PRCN].targetObservationCriterion[code="age"].value
         textvalue:ST

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

SampleArrayObservation
Observation
   identifierFiveWs.identifier
   statusFiveWs.status
   categoryFiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   focusFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   effective[x]FiveWs.done[x]
   effective[x] (effectiveDateTime)FiveWs.done[x]
   effective[x] (effectivePeriod)FiveWs.done[x]
   issuedFiveWs.recorded
   performerFiveWs.actor
   component
      codeFiveWs.what[x]

Mappings for SNOMED CT Attribute Binding (http://snomed.org/attributebinding)

SampleArrayObservation
Observation
   code116680003 |Is a|
   value[x]363714003 |Interprets|
   value[x] (valueSampledData)363714003 |Interprets|
   interpretation363713009 |Has interpretation|
   bodySite718497002 |Inherent location|
   specimen704319004 |Inherent in|
   device424226004 |Using device|
   component
      value[x]363714003 |Interprets|
      value[x] (valueSampledData)363714003 |Interprets|
      interpretation363713009 |Has interpretation|