Personal Health Device Implementation Guide
1.0.0 - STU 1

This page is part of the Personal Health Device FHIR IG (v1.0.0: STU 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: PhdCompoundNumericObservation - Mappings

Mappings for the PhdCompoundNumericObservation resource profile.

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

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

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

PhdCompoundNumericObservation
Observation< 363787002 |Observable entity|
   status< 445584004 |Report by finality status|
   code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
   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|
      interpretation< 260245000 |Findings values|
   component (supplementalTypesComponent)
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x] (valueCodeableConcept)363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|
   component (relativeTimeComponent)
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x] (valueQuantity)363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|
   component (hiresRelativeTimeComponent)
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x] (valueQuantity)363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|
   component (compound)
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x]363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|
   component (accuracyComponent)
      code< 363787002 |Observable entity| OR < 386053000 |Evaluation procedure|
      value[x] (valueQuantity)363714003 |Interprets| < 441742003 |Evaluation finding|
      interpretation< 260245000 |Findings values|

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

PhdCompoundNumericObservation
ObservationOBX
   meta
      security
      security (PhdHtest)
         systemC*E.3
         versionC*E.7
         codeC*E.1
         displayC*E.2 - but note this is not well followed
         userSelectedSometimes implied by being first
   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.
   identifier (conditionalCreate)OBX.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.
      useN/A
      valueCX.1 / EI.1
      periodCX.7 + CX.8
      assignerCX.4 / (CX.4,CX.9,CX.10)
   basedOnORC
   partOfVaries by domain
   statusOBX-11
   category (vitalSignsCategory)
      codingC*E.1-8, C*E.10-22
      coding (vitalSigns)C*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
   codeOBX-3
      codingC*E.1-8, C*E.10-22
      coding (MDCType)C*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
      coding (LoincCoding)C*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)
   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'
   dataAbsentReasonN/A
      codingC*E.1-8, C*E.10-22
      coding (FhirDefault)C*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
   interpretationOBX-8
      codingC*E.1-8, C*E.10-22
      coding (MsmtStatusInterpretation)C*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
   noteNTE.3 (partner NTE to OBX, or sometimes another (child?) OBX)
   bodySiteOBX-20
   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
      value[x]OBX.2, OBX.5, OBX.6
      dataAbsentReasonN/A
      interpretationOBX-8
      referenceRangeOBX.7
   component (supplementalTypesComponent)containment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
         coding (MdcType)C*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] (valueCodeableConcept)OBX.2, OBX.5, OBX.6
         codingC*E.1-8, C*E.10-22
         coding (MDCType)C*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
      interpretationOBX-8
      referenceRangeOBX.7
   component (relativeTimeComponent)containment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
         coding (MdcType)C*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] (valueQuantity)OBX.2, OBX.5, OBX.6
         valueSN.2 / CQ - N/A
         comparatorSN.1 / CQ.1
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
      interpretationOBX-8
      referenceRangeOBX.7
   component (hiresRelativeTimeComponent)containment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
         coding (MdcType)C*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] (valueQuantity)OBX.2, OBX.5, OBX.6
         valueSN.2 / CQ - N/A
         comparatorSN.1 / CQ.1
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
      interpretationOBX-8
      referenceRangeOBX.7
   component (compound)containment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
         coding (MDCType)C*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
         coding (LoincCoding)C*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
         valueSN.2 / CQ - N/A
         comparatorSN.1 / CQ.1
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
      dataAbsentReasonN/A
         codingC*E.1-8, C*E.10-22
         coding (FhirDefault)C*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
      interpretationOBX-8
         codingC*E.1-8, C*E.10-22
         coding (MsmtStatusInterpretation)C*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
      referenceRangeOBX.7
   component (accuracyComponent)containment by OBX-4?
      codeOBX-3
         codingC*E.1-8, C*E.10-22
         coding (MdcType)C*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] (valueQuantity)OBX.2, OBX.5, OBX.6
         valueSN.2 / CQ - N/A
         comparatorSN.1 / CQ.1
         unit(see OBX.6 etc.) / CQ.2
         system(see OBX.6 etc.) / CQ.2
         code(see OBX.6 etc.) / CQ.2
      interpretationOBX-8
      referenceRangeOBX.7

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

PhdCompoundNumericObservation
ObservationEntity. Role, or Act, Observation[classCode=OBS, moodCode=EVN]
   meta
      idn/a
      extensionn/a
      security
      security (PhdHtest)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
   textAct.text?
   containedN/A
   extension
      idn/a
      extensionn/a
      urlN/A
      value[x]N/A
      value[x] (valueReference)N/A
   modifierExtensionN/A
   identifierid
   identifier (conditionalCreate)id
      idn/a
      extensionn/a
      useRole.code or implied by context
      valueII.extension or II.root if system indicates OID or GUID (Or Role.id.extension or root)
      periodRole.effectiveTime or implied by context
      assignerII.assigningAuthorityName but note that this is an improper use by the definition of the field. Also Role.scoper
   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 (vitalSignsCategory).outboundRelationship[typeCode="COMP].target[classCode="LIST", moodCode="EVN"].code
      idn/a
      extensionn/a
      codingunion(., ./translation)
      coding (vitalSigns)union(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   codecode
      idn/a
      extensionn/a
      codingunion(., ./translation)
      coding (MDCType)union(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      coding (LoincCoding)union(., ./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]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   focusparticipation[typeCode=SBJ]
   encounterinboundRelationship[typeCode=COMP].source[classCode=ENC, moodCode=EVN]
   effective[x]effectiveTime
   issuedparticipation[typeCode=AUT].time
   performerparticipation[typeCode=PRF]
   dataAbsentReasonvalue.nullFlavor
      idn/a
      extensionn/a
      codingunion(., ./translation)
      coding (FhirDefault)union(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   interpretationinterpretationCode
      idn/a
      extensionn/a
      codingunion(., ./translation)
      coding (MsmtStatusInterpretation)union(., ./translation)
         idn/a
         extensionn/a
         system./codeSystem
         version./codeSystemVersion
         code./code
         displayCV.displayName
         userSelectedCD.codingRationale
      text./originalText[mediaType/code="text/plain"]/data
   notesubjectOf.observationEvent[code="annotation"].value
   bodySitetargetSiteCode
   methodmethodCode
   specimenparticipation[typeCode=SPC].specimen
   deviceparticipation[typeCode=DEV]
      idn/a
      extensionn/a
      referenceN/A
      typeN/A
      identifier.identifier
      displayN/A
   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
      value[x]value
      dataAbsentReasonvalue.nullFlavor
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
   component (supplementalTypesComponent)outBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MdcType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      value[x] (valueCodeableConcept)value
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MDCType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
   component (relativeTimeComponent)outBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MdcType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      value[x] (valueQuantity)value
         idn/a
         extensionn/a
         valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         comparatorIVL properties
         unitPQ.unit
         systemCO.codeSystem, PQ.translation.codeSystem
         codePQ.code, MO.currency, PQ.translation.code
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
   component (hiresRelativeTimeComponent)outBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MdcType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      value[x] (valueQuantity)value
         idn/a
         extensionn/a
         valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         comparatorIVL properties
         unitPQ.unit
         systemCO.codeSystem, PQ.translation.codeSystem
         codePQ.code, MO.currency, PQ.translation.code
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
   component (compound)outBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MDCType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         coding (LoincCoding)union(., ./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
         idn/a
         extensionn/a
         valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         comparatorIVL properties
         unitPQ.unit
         systemCO.codeSystem, PQ.translation.codeSystem
         codePQ.code, MO.currency, PQ.translation.code
      dataAbsentReasonvalue.nullFlavor
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (FhirDefault)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      interpretationinterpretationCode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MsmtStatusInterpretation)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]
   component (accuracyComponent)outBoundRelationship[typeCode=COMP]
      idn/a
      extensionn/a
      modifierExtensionN/A
      codecode
         idn/a
         extensionn/a
         codingunion(., ./translation)
         coding (MdcType)union(., ./translation)
            idn/a
            extensionn/a
            system./codeSystem
            version./codeSystemVersion
            code./code
            displayCV.displayName
            userSelectedCD.codingRationale
         text./originalText[mediaType/code="text/plain"]/data
      value[x] (valueQuantity)value
         idn/a
         extensionn/a
         valuePQ.value, CO.value, MO.value, IVL.high or IVL.low depending on the value
         comparatorIVL properties
         unitPQ.unit
         systemCO.codeSystem, PQ.translation.codeSystem
         codePQ.code, MO.currency, PQ.translation.code
      interpretationinterpretationCode
      referenceRangeoutboundRelationship[typeCode=REFV]/target[classCode=OBS, moodCode=EVN]

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

PhdCompoundNumericObservation
Observation
   identifierFiveWs.identifier
   identifier (conditionalCreate)FiveWs.identifier
   statusFiveWs.status
   category (vitalSignsCategory)FiveWs.class
   codeFiveWs.what[x]
   subjectFiveWs.subject[x], FiveWs.subject
   focusFiveWs.subject[x], FiveWs.subject
   encounterFiveWs.context
   effective[x]FiveWs.done[x]
   issuedFiveWs.recorded
   performerFiveWs.actor
   component
      codeFiveWs.what[x]
   component (supplementalTypesComponent)
      codeFiveWs.what[x]
   component (relativeTimeComponent)
      codeFiveWs.what[x]
   component (hiresRelativeTimeComponent)
      codeFiveWs.what[x]
   component (compound)
      codeFiveWs.what[x]
   component (accuracyComponent)
      codeFiveWs.what[x]

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

PhdCompoundNumericObservation
Observation
   code116680003 |Is a|
   interpretation363713009 |Has interpretation|
   bodySite718497002 |Inherent location|
   specimen704319004 |Inherent in|
   device424226004 |Using device|
   component
      value[x]363714003 |Interprets|
      interpretation363713009 |Has interpretation|
   component (supplementalTypesComponent)
      value[x] (valueCodeableConcept)363714003 |Interprets|
      interpretation363713009 |Has interpretation|
   component (relativeTimeComponent)
      value[x] (valueQuantity)363714003 |Interprets|
      interpretation363713009 |Has interpretation|
   component (hiresRelativeTimeComponent)
      value[x] (valueQuantity)363714003 |Interprets|
      interpretation363713009 |Has interpretation|
   component (compound)
      value[x]363714003 |Interprets|
      interpretation363713009 |Has interpretation|
   component (accuracyComponent)
      value[x] (valueQuantity)363714003 |Interprets|
      interpretation363713009 |Has interpretation|