HL7 Version 2 to FHIR
1.0.0 - STU 1 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 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/ConceptMap/segment-obx-to-observation Version: 1.0.0
Standards status: Informative Computable Name: SegmentOBXToObservation

Copyright/Legal: Copyright (c) 2025, 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. The logic defined to date is part of OBX-5 mapping.
3OBX-3Observation IdentifierCWE11codeCodeableConcept11CWE[CodeableConcept]Note that in Observation there is category field that depending on implementation guide and/or realm is required. MSH-9.2 Trigger Event, the MSH-3 Sending Application and OBX-3 Observation Identifier's code system ontology would inform how to value Observation.category.
4OBX-4Observation Sub-IDOG01Map 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.valueQuantity.valueQuantity01NM[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.valueStringstring01
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CF"Observation.valueCodeableConceptCodeableConcept01CF[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CNE"Observation.valueCodeableConceptCodeableConcept01CNE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CE"Observation.valueCodeableConceptCodeableConcept01CE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "CWE"Observation.valueCodeableConceptCodeableConcept01CWE[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "IS"Observation.valueCodeableConceptCodeableConcept01IS[CodeableConcept]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "DR"Observation.valuePeriodPeriod01DR[Period]
5OBX-5Observation Valuevaries0-1IF OBX-2 IN ("DTM", "DT")Observation.valueDateTimedateTime01
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "NR"Observation.valueRangeRange01NR[Range]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "VR"Observation.valueStringstring01OBX-5.1+"-"+OBX-5.2
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "TM"Observation.valueTimetime01
5OBX-5Observation Valuevaries0-1IF (OBX-2 EQUALS "SN" AND OBX-5.1 EQUALS "<>"Observation.valueStringstring01OBX-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.valueRatioRatio01SN[Ratio]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"Observation.valueRangeRange01SN[Range]
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "+"Observation.valueStringstring01OBX-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.valueQuantityQuantity01SN[Quantity]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
5OBX-5Observation Valuevaries0-1If line 19 through 23 all fail while OBX-2 = SNObservation.valueStringstring01OBX-5.1+" "+OBX-5.2+" "+OBX-5.3+" "+OBX-5.4" "OBX-6"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "NA"Observation.valueSampedDataSampledData01NA[SampledData]Full guidance on how to populate SampledData based on a single vector or an array will be provided in a future version based on interest. Please submit a JIRA if you are interested.
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"Observation.extension.urluri11"https://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.valueAttachment"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"Observation.extension.valueAttachmentAttachment11ED[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 "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.
OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "RP"Observation.extension.urluri11"https://hl7.org/fhir/5.0/StructureDefinition/extension-Observation.valueAttachment"
5OBX-5Observation Valuevaries0-1IF OBX-2 EQUALS "RP"Observation.extension.valueAttachmentAttachment11ED[Attachment]To be resolved when we resolve DocumentReference and valueAttachment
6OBX-6UnitsCWE01IF OBX-2 IN ("NA", "NM")Observation.valueQuantityQuantityCWE[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 NOT IN (":", "/", "-", "+")Observation.valueQuantityQuantityCWE[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.valueRange.lowSimpleQuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"Observation.valueRange.highSimpleQuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")Observation.valueRatio.numeratorQuantityCWE[Quantity]
6OBX-6UnitsCWE01IF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")Observation.valueRatio.denominatorQuantityCWE[Quantity]
7OBX-7References RangeST01Observation.referenceRange.textstring0-1If OBX-7 is sufficiently parseable, then the low, high, type, appliesTo, and/or age may be used.
8OBX-8Interpretation CodesCWE0-1Observation.interpretationCodeableConcept0-1CWE[CodeableConcept]InterpretationCodes
9OBX-9ProbabilityNM01
10OBX-10Nature of Abnormal TestID0-1Observation.extension.uriuri0-1"http://hl7.org/fhir/StructureDefinition/observation-nature-of-abnormal-test"
10OBX-10Nature of Abnormal TestID0-1Observation.extension.valueCodeableConceptCodeableConcept0-1CWE[CodeableConcept]NatureOfAbnormalTesting
11OBX-11Observation Result StatusID11Observation.statuscode11ObservationResultStatusCodesInterpretation
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.urluri"http://hl7.org/fhir/StructureDefinition/alternate-codes"
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.valueCodeableConcept.coding.codeCodeableConcept"X"
11OBX-11Observation Result StatusID11IF OBX-11 IS "X"Observation.status.extension.valueCodeableConcept.coding.systemstring"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.effectiveDateTimedateTime01
15OBX-15Producer's IDCWE01Observation.performer(Observation.Organization)Identifier01CWE[Organization]We are mapping this to an identifier considering the definition (used for a unique identifier of the producer), although that does not fit the use of the CWE data type in HL7 v2. Depending on context (e.g., US CLIA or IHE LTW, or ILW) this may reflect a location (US CLIA) or an organization (IHE LTW or ILW).
15OBX-15Producer's IDCWE01Observation.performer(Observation.PractitionerRole)
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.practitioner(Observation.Practitioner)Reference(Observation.PractitionerRole)0-1XCN[Practitioner]
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.code.coding.code)CodeableConcept0-1"responsibleObserver"
16OBX-16Responsible ObserverXCN0-1Observation.performer(Observation.PractitionerRole.code.coding.system)CodeableConcept0-1"http://terminology.hl7.org/CodeSystem/practitioner-role"
17OBX-17Observation MethodCWE0-1Observation.methodCodeableConcept01CWE[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)Identifier01EI[Identifier-Extension]
19OBX-19Date/Time of the AnalysisDTM01Observation.extension.urluri01"http://hl7.org/fhir/StructureDefinition/observation-analysis-date-time"
19OBX-19Date/Time of the AnalysisDTM01Observation.extension.valueDateTimedateTime01
20OBX-20Observation SiteCWE0-1Observation.bodySiteCodeableConcept01CWE[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 IdentifierEI01IdentifierIdentifier0-1EI[Identifier-Extension]
21OBX-21Observation Instance IdentifierEI01Observation.identifier.type.coding.codecode01"FILL"
22OBX-22Mood CodeCNE01
23OBX-23Performing Organization NameXON01IF OBX-25 NOT VALUEDObservation.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 AddressXAD01IF OBX-25 NOT VALUEDObservation.performer(Observation.Organization.address)Address0-1XAD[Address]
24OBX-24Performing Organization AddressXAD01IF OBX-25 VALUEDObservation.performer(Observation.PractitionerRole.organization(Observation.Organization.address)Address0-1XAD[Address]
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole.practitioner)Reference(Observation.PractitionerRole)01XCN[PractitionerRole]
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole.code.coding.code)code"MDIR"
25OBX-25Performing Organization Medical DirectorXCN01Observation.performer(Observation.PractitionerRole.code.coding.system)"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.codecode0-1
29OBX-29Observation TypeID01Observation.category.coding.systemuri0-1
30OBX-30Observation Sub-TypeID01Observation.extension.urluri01"http://hl7.org/fhir/StructureDefinition/observation-structure-type"The sub type was necessary in v2 to distinguish purpose of the observation when it appears in a message in the same group (e.g., answers to ask at order entry questions with actual results ). Within FHIR flagging the observation may not be necessary, but that is not yet clear. Until then, we will keep the thought of needing an extension, but not create it yet.
30OBX-30Observation Sub-TypeID01Observation.extension.valueCodeableConcept.coding.codecode01
30OBX-30Observation Sub-TypeID01Observation.extension.valueCodeableConcept.coding.systemuri01"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.specimen"Note 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)IdentifierEIP[Identifier-PlacerAssignedIdentifier]
33OBX-33Observation Related Specimen IdentifierEIP0-1IF OBX-33 COUNT=1Observation.specimen(Observation.Specimen.identifier)IdentifierEIP[Identifier-FillerAssignedIdentifier]

Mapping from (not specified) to (not specified)


Group 1 Mapping from unspecified code system to unspecified code system

Source Concept DetailsRelationshipTarget Concept DetailsComment
Codes from NarrativeConditionComputableANTLRCodes from
OBX-3Observation Identifieris equivalent tocodecodeNote that in Observation there is category field that depending on implementation guide and/or realm is required. MSH-9.2 Trigger Event, the MSH-3 Sending Application and OBX-3 Observation Identifier's code system ontology would inform how to value Observation.category.
OBX-4Observation Sub-IDMap 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.is equivalent to$this$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-5Observation ValueIF OBX-2 EQUALS "NM"is equivalent tovalueQuantity.valuevalueQuantity.value
OBX-5Observation ValueAny markup in ST, FT or TX data may not present properly given that valueString is a string data typeIF OBX-2 IN ("ST", "FT", "TX")is equivalent tovalueStringvalueString
OBX-5Observation ValueIF OBX-2 EQUALS "CF"is equivalent tovalueCodeableConcept[1]valueCodeableConcept[1]
OBX-5Observation ValueIF OBX-2 EQUALS "CNE"is equivalent tovalueCodeableConceptvalueCodeableConcept
OBX-5Observation ValueIF OBX-2 EQUALS "CE"is equivalent tovalueCodeableConceptvalueCodeableConcept
OBX-5Observation ValueIF OBX-2 EQUALS "CWE"is equivalent tovalueCodeableConceptvalueCodeableConcept
OBX-5Observation ValueIF OBX-2 EQUALS "IS"is equivalent tovalueCodeableConceptvalueCodeableConcept
OBX-5Observation ValueIF OBX-2 EQUALS "DR"is equivalent tovaluePeriodvaluePeriod
OBX-5Observation ValueIF OBX-2 IN ("DTM", "DT")is equivalent tovalueDateTimevalueDateTime
OBX-5Observation ValueIF OBX-2 EQUALS "NR"is equivalent tovalueRangevalueRange
OBX-5Observation ValueIF OBX-2 EQUALS "VR"is equivalent tovalueStringvalueString
OBX-5Observation ValueIF OBX-2 EQUALS "TM"is equivalent tovalueTimevalueTime
OBX-5Observation ValueIF (OBX-2 EQUALS "SN" AND OBX-5.1 EQUALS "<>"is equivalent tovalueStringvalueString
OBX-5Observation ValueIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")is equivalent tovalueRatio[1]valueRatio[1]
OBX-5Observation ValueIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"is equivalent tovalueRange[1]valueRange[1]
OBX-5Observation ValueIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "+"is equivalent tovalueStringvalueString
OBX-5Observation ValueIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 NOT IN (":", "/", "-", "+")is equivalent tovalueQuantity[1]valueQuantity[1]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
OBX-5Observation ValueIf line 19 through 23 all fail while OBX-2 = SNis equivalent tovalueStringvalueString
OBX-5Observation ValueIF OBX-2 EQUALS "NA"is equivalent tovalueSampedDatavalueSampedDataFull guidance on how to populate SampledData based on a single vector or an array will be provided in a future version based on interest. Please submit a JIRA if you are interested.
OBX-5Observation ValueIF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"is equivalent toextension[1].urlextension[1].url
OBX-5Observation ValueIF OBX-2 EQUALS "ED" AND IF OBX-5.4 EQUALS "Base64"is equivalent toextension[1].valueAttachmentextension[1].valueAttachmentWe are for now addressing Base64 that cover .pdf, pictures and other binaries. If somebody does this, we will address those.
OBX-5Observation ValueIF OBX-2 EQUALS "RP"is equivalent toextension[1].urlextension[1].url
OBX-5Observation ValueIF OBX-2 EQUALS "RP"is equivalent toextension[1].valueAttachmentextension[1].valueAttachmentTo be resolved when we resolve DocumentReference and valueAttachment
OBX-6UnitsIF OBX-2 IN ("NA", "NM")is equivalent tovalueQuantity[1]valueQuantity[1]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
OBX-6UnitsIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 NOT IN (":", "/", "-", "+")is equivalent tovalueQuantity[1]valueQuantity[1]Note that OBX-5 and OBX-6 resolve to different components for the same Quantity data type.
OBX-6UnitsIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"is equivalent tovalueRange[1].lowvalueRange[1].low
OBX-6UnitsIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 EQUALS "-"is equivalent tovalueRange[1].highvalueRange[1].high
OBX-6UnitsIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")is equivalent tovalueRatio[1].numeratorvalueRatio[1].numerator
OBX-6UnitsIF OBX-2 EQUALS "SN" AND OBX-5.1 NOT EQUALS "<>" AND OBX-5.3 IN (":", "/")is equivalent tovalueRatio[1].denominatorvalueRatio[1].denominator
OBX-7References Rangeis equivalent toreferenceRange.textreferenceRange.textIf OBX-7 is sufficiently parseable, then the low, high, type, appliesTo, and/or age may be used.
OBX-8Interpretation Codesis equivalent tointerpretationinterpretation
OBX-10Nature of Abnormal Testis equivalent toextension[2].uriextension[2].uri
OBX-10Nature of Abnormal Testis equivalent toextension[2].valueCodeableConceptextension[2].valueCodeableConcept
OBX-11Observation Result Statusis equivalent tostatusstatus
OBX-11Observation Result StatusIF OBX-11 IS "X"is equivalent tostatus.extension[1].urlstatus.extension[1].url
OBX-11Observation Result StatusIF OBX-11 IS "X"is equivalent tostatus.extension[1].valueCodeableConcept.coding.codestatus.extension[1].valueCodeableConcept.coding.code
OBX-11Observation Result StatusIF OBX-11 IS "X"is equivalent tostatus.extension[1].valueCodeableConcept.coding.systemstatus.extension[1].valueCodeableConcept.coding.system
OBX-11Observation Result StatusIF OBX-11 IS "N"is equivalent todataAbsentReason.coding[2].codedataAbsentReason.coding[2].code
OBX-11Observation Result StatusIF OBX-11 IS "N"is equivalent todataAbsentReason.coding[2].systemdataAbsentReason.coding[2].system
OBX-14Date/Time of the Observationis equivalent toeffectiveDateTimeeffectiveDateTime
OBX-15Producer's IDis equivalent toperformer[2](Organization)performer[2](Organization)We are mapping this to an identifier considering the definition (used for a unique identifier of the producer), although that does not fit the use of the CWE data type in HL7 v2. Depending on context (e.g., US CLIA or IHE LTW, or ILW) this may reflect a location (US CLIA) or an organization (IHE LTW or ILW).
OBX-15Producer's IDis equivalent toperformer[2](PractitionerRole)performer[2](PractitionerRole)
OBX-16Responsible Observeris equivalent toperformer[1](PractitionerRole.practitioner(Practitioner))performer[1](PractitionerRole.practitioner(Practitioner))
OBX-16Responsible Observeris equivalent toperformer[1](PractitionerRole.code.coding.code)performer[1](PractitionerRole.code.coding.code)
OBX-16Responsible Observeris equivalent toperformer[1](PractitionerRole.code.coding.system)performer[1](PractitionerRole.code.coding.system)
OBX-17Observation Methodis equivalent tomethodmethodThe 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-18Equipment Instance Identifieris equivalent todevice(Device.identifier)device(Device.identifier)
OBX-19Date/Time of the Analysisis equivalent toextension[2].urlextension[2].url"http://hl7.org/fhir/StructureDefinition/observation-analysis-date-time"
OBX-19Date/Time of the Analysisis equivalent toextension[2].valueDateTimeextension[2].valueDateTime
OBX-20Observation Siteis equivalent tobodySitebodySiteThe 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-21Observation Instance Identifieris equivalent toidentifieridentifier
OBX-21Observation Instance Identifieris equivalent toidentifier.type.coding.codeidentifier.type.coding.code
OBX-23Performing Organization NameIF OBX-25 NOT VALUEDis equivalent toperformer[2](Organization)performer[2](Organization)
OBX-23Performing Organization NameIF OBX-25 VALUEDis equivalent toperformer[2](PractitionerRole[1].organization(Organization))performer[2](PractitionerRole[1].organization(Organization))
OBX-24Performing Organization AddressIF OBX-25 NOT VALUEDis equivalent toperformer[2](Organization.address)performer[2](Organization.address)
OBX-24Performing Organization AddressIF OBX-25 VALUEDis equivalent toperformer[2](PractitionerRole[1].organization(Organization.address))performer[2](PractitionerRole[1].organization(Organization.address))
OBX-25Performing Organization Medical Directoris equivalent toperformer[2](PractitionerRole[1].practitioner)performer[2](PractitionerRole[1].practitioner)
OBX-25Performing Organization Medical Directoris equivalent toperformer[2](PractitionerRole[1].code.coding.code)performer[2](PractitionerRole[1].code.coding.code)
OBX-25Performing Organization Medical Directoris equivalent toperformer[2](PractitionerRole[1].code.coding.system)performer[2](PractitionerRole[1].code.coding.system)
OBX-29Observation Typeis equivalent tocategory[1].coding.codecategory[1].coding.code
OBX-29Observation Typeis equivalent tocategory[1].coding.systemcategory[1].coding.system
OBX-30Observation Sub-Typeis equivalent toextension[2].urlextension[2].urlThe sub type was necessary in v2 to distinguish purpose of the observation when it appears in a message in the same group (e.g., answers to ask at order entry questions with actual results ). Within FHIR flagging the observation may not be necessary, but that is not yet clear. Until then, we will keep the thought of needing an extension, but not create it yet.
OBX-30Observation Sub-Typeis equivalent toextension[2].valueCodeableConcept.coding.codeextension[2].valueCodeableConcept.coding.code
OBX-30Observation Sub-Typeis equivalent toextension[2].valueCodeableConcept.coding.systemextension[2].valueCodeableConcept.coding.system
OBX-33Observation Related Specimen IdentifierIF OBX-33 COUNT>1is equivalent toextension[1].uriextension[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-33Observation Related Specimen IdentifierIF OBX-33 COUNT>1is equivalent toextension[1].valueReference(Group.member.entity(Specimen.identifier[1])extension[1].valueReference(Group.member.entity(Specimen.identifier[1])
OBX-33Observation Related Specimen IdentifierIF OBX-33 COUNT>1is equivalent toextension[2].uriextension[2].uri
OBX-33Observation Related Specimen IdentifierIF OBX-33 COUNT>1is equivalent toextension[2].valueReference(Group.member.entity(Specimen.identifier[2]))extension[2].valueReference(Group.member.entity(Specimen.identifier[2]))
OBX-33Observation Related Specimen IdentifierIF OBX-33 COUNT=1is equivalent tospecimen(Specimen.identifier[1])specimen(Specimen.identifier[1])
OBX-33Observation Related Specimen IdentifierIF OBX-33 COUNT=1is equivalent tospecimen(Specimen.identifier[2])specimen(Specimen.identifier[2])

Notes: