HL7 Version 2 to FHIR
1.0.0-ballot - ballot International flag

HL7 Version 2 to FHIR, published by HL7 International / Orders and Observations. This guide is not an authorized publication; it is the continuous build for version 1.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/v2-to-fhir/ and changes regularly. See the Directory of published versions

ConceptMap: Segment OBX to Observation Map (Experimental)

Official URL: http://hl7.org/fhir/uv/v2mappings/segment-obx-component-to-observation Version: 1.0.0-ballot
Active as of 2024-12-20 Computable Name: SegmentOBXComponentToObservation

Copyright/Legal: Copyright (c) 2020, HL7 International, Inc., All Rights Reserved.

This ConceptMap represents a mapping from the HL7 V2 Segment OBX to the FHIR Observation Resource.

This ConceptMap represents the mapping from the HL7 V2 OBX Segment to the FHIR Observation Resource. See also the FHIR Shorthand or the CSV Source.

HL7 v2Condition (IF True, args)HL7 FHIRComments
Sort OrderIdentifierNameData TypeCardinality - MinCardinality - MaxComputable ANTLRComputable FHIRPathNarrativeFHIR AttributeExtensionData TypeCardinality - MinCardinality - MaxData Type MappingVocabulary Mapping
(IS, ID, CE, CEN, CWE)
Assignment
1OBX-1Set ID – OBXSI01
2OBX-2Value TypeID01OBX-2 determines the flavor of Observation.value[x] is used in OBX-5
3OBX-3Observation IdentifierCWE11Observation.codeObservation.CodeableConcept11CWE[CodeableConcept]
3OBX-3Observation IdentifierCWE11Observation.component.codeObservation.CodeableConcept11CWE[CodeableConcept]
4OBX-4Observation Sub-IDST01Map to Observation.partOf or Observation.hasMember or Observation.DerivedFrom according to the implementation guidance for the v2 message at hand, otherwise map to the extension-sub-id to enable the final destination to determine how to structure the observations.Observation.$thisOG[Extension-Subidentifier]OBX-4 Sub Identifier would determine how to use Observation.partOf or Observation.hasMember or Observation.DerivedFrom, but is highly dependent on the local implementation of OBX-4 or an implementation guide (e.g., LRI, Clinical Genomics). That is not known at the standard level, so we cannot provide specific mapping guidance here. However, if the mapper does not have access to the syntax used and its meaning, we need to be able to pass on OBX-4 Sub Identifier to the final destination that should know how to then structure it using FHIR attributes.
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "NM"Observation.component.valueQuantityObservation.quantity01NM[Quantity]
5OBX-5Observation Valuevaries0-1IF OBX-2 IN ("ST", "FT", "TX")Any markup in ST, FT or TX data may not present properly given that valueString is a string data typeObservation.component.valueStringObservation.string01
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CF"Observation.component.valueCodeableConceptObservation.CodeableConcept01CF[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CNE"Observation.component.valueCodeableConceptObservation.CodeableConcept01CNE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CE"Observation.component.valueCodeableConceptObservation.CodeableConcept01CE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CWE"Observation.component.valueCodeableConceptObservation.CodeableConcept01CWE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "IS"Observation.component.valueCodeableConceptObservation.CodeableConcept01IS[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "DR"Observation.component.valuePeriodObservation.Period01DR[Period]
5OBX-5Observation Valuevaries0-1IF OBX-2 IN ("DTM", "DT")Observation.component.valueDateTimeObservation.dateTime01
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "NR"Observation.component.valueRangeObservation.Range01NR[Range]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "VR"Observation.component.valueStringObservation.string01OBX-5.1+"-"+OBX-5.2
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "TM"Observation.component.valueTimeObservation.time01
5OBX-5Observation Valuevaries0-1IF (OBX-2 EQUALS "SN" AND OBX-5.1 EQUALS "<>"Observation.component.valueStringObservation.string01OBX-5.1+" "+OBX-5.2+" "+OBX-5.3+" "+OBX-5.4" "OBX-6"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")Observation.component.valueRatioObservation.Ratio01SN[Ratio]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"Observation.component.valueRangeObservation.Range01SN[Range]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "+"Observation.component.valueStringObservation.string01OBX-5.1+" "+OBX-5.2+" "+OBX-5.3+" "+OBX-5.4" "OBX-6"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 NOT IN (":", "/", "-", "+")Observation.component.valueQuantityObservation.Quantity01SN[Quantity]
5OBX-5Observation Valuevaries0-1If line 19 through 23 all fail while OBX-2 = SNObservation.component.valueStringObservation.string01OBX-5.1+" "+OBX-5.2+" "+OBX-5.3+" "+OBX-5.4" "OBX-6"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "NA"Observation.component.valueSampledDataObservation.SampledData01Need to add text on converting from NA to SampledData
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"If none of the other observations in OBX-5 are not derived from the documentation includedObservation.component.extension.urlObservation.uri11"https://hl7.org/fhir/R5/StructureDefinition/extension-Observation.valueAttachmentSome implementers may include in OBX-5 the documentation that the other OBX-5 components are derived from. In that situations
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"If none of the other observations in OBX-5 are not derived from the documentation includedObservation.component.extension.valueAttachmentObservation.Attachment11ED[Attachment]We are for now addressing Base64 that cover .pdf, pictures and other binaries. If somebody does this, we will address those.
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"And if other observation in OBX-5 are derived from the documentation includedObservation.derivedFrom(Observation.DocumentReference)ReferenceED[DocumentReference]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "EI"Requires more work to properly map. Use case: An OBX under OBR that points to the calibration/quality control/etc. settings/values/result/etc. that the other OBX-s under the OBR would be "subject" to.
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "RP"If none of the other observations in OBX-5 are not derived from the documentation referencedObservation.component.extension.urlObservation.uri11"https://hl7.org/fhir/R5/StructureDefinition/extension-Observation.valueAttachment
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "RP"If none of the other observations in OBX-5 are not derived from the documentation referencedObservation.component.extension.valueAttachmentObservation.Attachment11RP[Attachment]To be resolved when we resolve DocumentReference and valueAttachment
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "RP"And if other observation in OBX-5 are derived from the documentation being referencedObservation.derivedFrom(Observation.DocumentReference)ReferenceRP[DocumentReference]
6OBX-6UnitsCWE01IF OBX-2 IN ("NA", "NM")Observation.component.valueQuantityObservation.QuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 NOT IN (":", "/", "-", "+")Observation.component.valueQuantityObservation.QuantityCWE[Quantity]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"Observation.component.valueRange.lowObservation.SimpleQuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"Observation.component.valueRange.highObservation.SimpleQuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")Observation.component.valueRatio.numeratorObservation.QuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")Observation.component.valueRatio.denominatorObservation.QuantityCWE[Quantity]
7OBX-7References RangeST01Observation.component.referenceRange.textIf OBX-7 is sufficiently parseable, then the low, high, type, appliesTo, and/or age may be used.
8OBX-8Interpretation CodesCWE0-1Observation.interpretationObservation.CodeableConcept0-1CWE[CodeableConcept]InterpretationCodes
9OBX-9ProbabilityNM01
10OBX-10Nature of Abnormal TestID0-1Observation.extension.uriObservation.uri0-1"http://hl7.org/fhir/StructureDefinition/observation-nature-of-abnormal-test"
10OBX-10Nature of Abnormal TestID0-1Observation.extension.valueCodeableConceptObservation.CodeableConcept0-1CWE[CodeableConcept]NatureOfAbnormalTesting
11OBX-11Observation Result StatusID11Observation.statusObservation.code11ObservationResultStatusCodesInterpretation
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.urlObservation.uri"http://hl7.org/fhir/StructureDefinition/alternate-codes"
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.valueCodeableConcept.coding.codeObservation.CodeableConcept"X"
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.valueCodeableConcept.coding.systemObservation.string"http://terminology.hl7.org/CodeSystem/v2-0085"
11OBX-11Observation Result StatusID11IF OBX-11 IS "N"Observation.dataAbsentReason.coding.code"not-asked"
11OBX-11Observation Result StatusID11IF OBX-11 IS "N"Observation.dataAbsentReason.coding.system"http://terminology.hl7.org/CodeSystem/data-absent-reason"
12OBX-12Effective Date of Reference RangeDTM01
13OBX-13User Defined Access ChecksST01
14OBX-14Date/Time of the ObservationDTM01Observation.effectiveDateTimeObservation.dateTime01
15OBX-15Producer's IDCWE01extension??-producerIdentifierObservation.identifier01CWE[Identifier]
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.practitioner(Observation.Practitioner)Reference(Observation.PractitionerRole)0-1XCN[PractitionerRole]
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.code.coding.code)Observation.string0-1"responsibleObserver"
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.code.coding.system)Observation.uri"http://terminology.hl7.org/CodeSystem/practitioner-role"
17OBX-17Observation MethodCWE0-1Observation.methodObservation.CodeableConcept01CWE[CodeableConcept]The cardinality of Observation.method is 0..1 while the source allows for multiple methods. As we are not aware of anybody populating multiples in HL7 v2, we did not provide further mapping guidance. If you need to support multiples, please submit a gForge to OO for the HL7 v2 to FHIR mapping Implementation Guide.
18OBX-18Equipment Instance IdentifierEI0-1Observation.device(Observation.Device.identifier)Observation.Identifier0-1EI[Identifier-Extension]
19OBX-19Date/Time of the AnalysisDTM01Observation.extension.urlObservation.uri01"http://hl7.org/fhir/StructureDefinition/observation-analysis-date-time"
19OBX-19Date/Time of the AnalysisDTM01Observation.extension.valueDateTimeObservation.dateTime01
20OBX-20Observation SiteCWE0-1Observation.bodySiteObservation.CodeableConcept01CWE[CodeableConcept]The cardinality of Observation.bodySite is 0..1 while the source allows for multiple body sites. As we are not aware of anybody populating multiples in HL7 v2, we did not provide further mapping guidance. If you need to support multiples, please submit a gForge to OO for the HL7 v2 to FHIR mapping Implementation Guide.
21OBX-21Observation Instance IdentifierEI01Observation.identifierObservation.Identifier0-1EI[Identifier-Extension]
21OBX-21Observation Instance IdentifierEI01Observation.identifier.type.coding.codeObservation.code01"FILL"
22OBX-22Mood CodeCNE01
23OBX-23Performing Organization NameXON01Observation.performer(Observation.Organization)Reference(Observation.Organization)0-1XON[Organization]
23OBX-23Performing Organization NameXON01IF OBX-25 VALUEDObservation.performer(Observation.PractitionerRole.organization(Observation.Organization)Reference(Observation.Organization)0-1XON[Organization]
24OBX-24Performing Organization AddressXAD01Observation.performer(Observation.Organization.address)Observation.Address0-1XAD[Address]
24OBX-24Performing Organization AddressXAD01IF OBX-25 VALUEDObservation.performer(Observation.PractitionerRole.organization(Observation.Organization.address)Observation.Address0-1XAD[Address]
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole)Reference(Observation.PractitionerRole)01XCN[PractitionerRole]
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole.code.coding.value)Observation.string"MDIR"
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole.code.coding.system)Observation.uri"http://terminology.hl7.org/CodeSystem/v2-0912"
26OBX-26Patient Results Release CategoryID01
27OBX-27Root CauseCWE01
28OBX-28Local Process ControlCWE0-1
29OBX-29Observation TypeID01Observation.category.coding.codeObservation.code0-1
29OBX-29Observation TypeID01Observation.category.coding.systemObservation.uri0-1
30OBX-30Observation Sub-TypeID01Observation.extension.urlObservation.uri01"http://hl7.org/fhir/StructureDefinition/observation-structure-type"
30OBX-30Observation Sub-TypeID01Observation.extension.valueCodeableConcept.coding.codeObservation.code01
30OBX-30Observation Sub-TypeID01Observation.extension.valueCodeableConcept.coding.systemObservation.uri01"http://hl7.org/fhir/StructureDefinition/observation-structure-type"
31OBX-31Action CodeID01
32OBX-32Observation Value Absent ReasonCWE0-1
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT>1Observation.extension.uriReference01"http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.specimenNote that in v2 messages the observations that a calculated observation is derived from on and involve multiple specimens are typically not included with the message. To enable relating the calculated observation to the correct specimens it relates to, the v2 message should include the originating observations that in turn use OBX-33 to link to the correct specimens. Without that, and if there are multiple specimens in OBX-33, there is no standard method to correctly associate the observation with the correct specimens. The implementer will have to devise an appropriate method for that in their context.
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT>1Observation.extension.valueReference(Observation.Group.member.entity(Observation.Specimen.identifier)01
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT>1Observation.extension.uri01"http://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.specimen
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT>1Observation.extension.valueReference(Observation.Group.member.entity(Observation.Specimen.identifier)01
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT=1Observation.specimen(Observation.Specimen.identifier)Observation.IdentifierEIP[Identifier-PlacerAssignedIdentifier]
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT=1Observation.specimen(Observation.Specimen.identifier)Observation.IdentifierEIP[Identifier-FillerAssignedIdentifier]

Generated Narrative: ConceptMap segment-obx-component-to-observation

Mapping from OBX to Observation


Group 1 Mapping from unspecified code system to unspecified code system

Source CodeRelationshipTarget CodeComment
OBX-3 (Observation Identifier)is equivalent tocode
OBX-3 (Observation Identifier)is equivalent tocomponent[each].code
OBX-4 (Observation Sub-ID)is equivalent to$thisOBX-4 Sub Identifier would determine how to use Observation.partOf or Observation.hasMember or Observation.DerivedFrom, but is highly dependent on the local implementation of OBX-4 or an implementation guide (e.g., LRI, Clinical Genomics). That is not known at the standard level, so we cannot provide specific mapping guidance here. However, if the mapper does not have access to the syntax used and its meaning, we need to be able to pass on OBX-4 Sub Identifier to the final destination that should know how to then structure it using FHIR attributes.
OBX-5 (Observation Value)is equivalent tocomponent[each].valueQuantity
OBX-5 (Observation Value)is equivalent tocomponent[each].valueString
OBX-5 (Observation Value)is equivalent tocomponent[each].valueCodeableConcept
OBX-5 (Observation Value)is equivalent tocomponent[each].valueCodeableConcept
OBX-5 (Observation Value)is equivalent tocomponent[each].valueCodeableConcept
OBX-5 (Observation Value)is equivalent tocomponent[each].valueCodeableConcept
OBX-5 (Observation Value)is equivalent tocomponent[each].valueCodeableConcept
OBX-5 (Observation Value)is equivalent tocomponent[each].valuePeriod
OBX-5 (Observation Value)is equivalent tocomponent[each].valueDateTime
OBX-5 (Observation Value)is equivalent tocomponent[each].valueRange
OBX-5 (Observation Value)is equivalent tocomponent[each].valueString
OBX-5 (Observation Value)is equivalent tocomponent[each].valueTime
OBX-5 (Observation Value)is equivalent tocomponent[each].valueString
OBX-5 (Observation Value)is equivalent tocomponent[each].valueRatio[1]
OBX-5 (Observation Value)is equivalent tocomponent[each].valueRange[1]
OBX-5 (Observation Value)is equivalent tocomponent[each].valueString
OBX-5 (Observation Value)is equivalent tocomponent[each].valueQuantity[1]
OBX-5 (Observation Value)is equivalent tocomponent[each].valueString
OBX-5 (Observation Value)is equivalent tocomponent[each].valueSampledDataNeed to add text on converting from NA to SampledData
OBX-5 (Observation Value)is equivalent tocomponent[each].extension[1].urlSome implementers may include in OBX-5 the documentation that the other OBX-5 components are derived from. In that situations
OBX-5 (Observation Value)is equivalent tocomponent[each].extension[1].valueAttachmentWe are for now addressing Base64 that cover .pdf, pictures and other binaries. If somebody does this, we will address those.
OBX-5 (Observation Value)is equivalent toderivedFrom(DocumentReference)
OBX-5 (Observation Value)is equivalent tocomponent[each].extension[1].url
OBX-5 (Observation Value)is equivalent tocomponent[each].extension[1].valueAttachmentTo be resolved when we resolve DocumentReference and valueAttachment
OBX-5 (Observation Value)is equivalent toderivedFrom(DocumentReference)
OBX-6 (Units)is equivalent tocomponent[each].valueQuantity
OBX-6 (Units)is equivalent tocomponent[each].valueQuantity[1]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
OBX-6 (Units)is equivalent tocomponent[each].valueRange[1].low
OBX-6 (Units)is equivalent tocomponent[each].valueRange[1].high
OBX-6 (Units)is equivalent tocomponent[each].valueRatio[1].numerator
OBX-6 (Units)is equivalent tocomponent[each].valueRatio[1].denominator
OBX-7 (References Range)is equivalent tocomponent[each].referenceRange.textIf OBX-7 is sufficiently parseable, then the low, high, type, appliesTo, and/or age may be used.
OBX-8 (Interpretation Codes)is equivalent tointerpretation
OBX-10 (Nature of Abnormal Test)is equivalent toextension[2].uri
OBX-10 (Nature of Abnormal Test)is equivalent toextension[2].valueCodeableConcept
OBX-11 (Observation Result Status)is equivalent tostatus
OBX-11 (Observation Result Status)is equivalent tostatus.extension[1].url
OBX-11 (Observation Result Status)is equivalent tostatus.extension[1].valueCodeableConcept.coding.code
OBX-11 (Observation Result Status)is equivalent tostatus.extension[1].valueCodeableConcept.coding.system
OBX-11 (Observation Result Status)is equivalent todataAbsentReason.coding[2].code
OBX-11 (Observation Result Status)is equivalent todataAbsentReason.coding[2].system
OBX-14 (Date/Time of the Observation)is equivalent toeffectiveDateTime
OBX-16 (Responsible Observer)is equivalent toperformer[1](PractitionerRole.practitioner(Practitioner))
OBX-16 (Responsible Observer)is equivalent toperformer[1](PractitionerRole.code.coding.code)
OBX-16 (Responsible Observer)is equivalent toperformer[1](PractitionerRole.code.coding.system)
OBX-17 (Observation Method)is equivalent tomethodThe cardinality of Observation.method is 0..1 while the source allows for multiple methods. As we are not aware of anybody populating multiples in HL7 v2, we did not provide further mapping guidance. If you need to support multiples, please submit a gForge to OO for the HL7 v2 to FHIR mapping Implementation Guide.
OBX-18 (Equipment Instance Identifier)is equivalent todevice(Device.identifier)
OBX-19 (Date/Time of the Analysis)is equivalent toextension[1].url"http://hl7.org/fhir/StructureDefinition/observation-analysis-date-time"
OBX-19 (Date/Time of the Analysis)is equivalent toextension[1].valueDateTime
OBX-20 (Observation Site)is equivalent tobodySiteThe cardinality of Observation.bodySite is 0..1 while the source allows for multiple body sites. As we are not aware of anybody populating multiples in HL7 v2, we did not provide further mapping guidance. If you need to support multiples, please submit a gForge to OO for the HL7 v2 to FHIR mapping Implementation Guide.
OBX-21 (Observation Instance Identifier)is equivalent toidentifier
OBX-21 (Observation Instance Identifier)is equivalent toidentifier.type.coding.code
OBX-23 (Performing Organization Name)is equivalent toperformer[2](Organization)
OBX-23 (Performing Organization Name)is equivalent toperformer[2](PractitionerRole.organization(Organization))
OBX-24 (Performing Organization Address)is equivalent toperformer[2](Organization.address)
OBX-24 (Performing Organization Address)is equivalent toperformer[2](PractitionerRole.organization(Organization.address))
OBX-25 (Performing Organization Medical Director)is equivalent toperformer[2](PractitionerRole)
OBX-25 (Performing Organization Medical Director)is equivalent toperformer[2](PractitionerRole.code.coding.value)
OBX-25 (Performing Organization Medical Director)is equivalent toperformer[2](PractitionerRole.code.coding.system)
OBX-29 (Observation Type)is equivalent tocategory[1].coding.code
OBX-29 (Observation Type)is equivalent tocategory[1].coding.system
OBX-30 (Observation Sub-Type)is equivalent toextension[2].url
OBX-30 (Observation Sub-Type)is equivalent toextension[2].valueCodeableConcept.coding.code
OBX-30 (Observation Sub-Type)is equivalent toextension[2].valueCodeableConcept.coding.system
OBX-33 (Observation Related Specimen Identifier)is equivalent toextension[1].uriNote that in v2 messages the observations that a calculated observation is derived from on and involve multiple specimens are typically not included with the message. To enable relating the calculated observation to the correct specimens it relates to, the v2 message should include the originating observations that in turn use OBX-33 to link to the correct specimens. Without that, and if there are multiple specimens in OBX-33, there is no standard method to correctly associate the observation with the correct specimens. The implementer will have to devise an appropriate method for that in their context.
OBX-33 (Observation Related Specimen Identifier)is equivalent toextension[1].valueReference(Group.member.entity(Specimen.identifier[1])
OBX-33 (Observation Related Specimen Identifier)is equivalent toextension[2].uri
OBX-33 (Observation Related Specimen Identifier)is equivalent toextension[2].valueReference(Group.member.entity(Specimen.identifier[2]))
OBX-33 (Observation Related Specimen Identifier)is equivalent tospecimen(Specimen.identifier[1])
OBX-33 (Observation Related Specimen Identifier)is equivalent tospecimen(Specimen.identifier[2])

Notes: