Segment OBR in FHIR

How segment OBR (Observation Request) becomes FHIR R4 resources, from the HL7 Version 2 to FHIR guide.

HL7 v2 definition
Definition of OBR in HL7 v2 2.8
Maps
DiagnosticReportServiceRequestSpecimen
Used in messages
MDM_T02OML_O21ORM_O01ORU_R01

To DiagnosticReport22 rows

HL7 v2 sourcev2 typeFHIR elementFHIR typeConditions and notes
OBR-2Placer Order Number
EIidentifier[1]Identifier
If ORC-2 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment group
OBR-2Placer Order Number
EIidentifier[1].type.coding.codecode
If ORC-2 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment groupValue "PLAC"
OBR-2Placer Order Number
EIidentifier[1].type.coding.systemuri
If ORC-2 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment groupValue "http://terminology.hl7.org/CodeSystem/v2-0203"
OBR-3Filler Order Number
EIidentifier[2]Identifier
If ORC-3 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment group
OBR-3Filler Order Number
EIidentifier[2].type.coding.codecode
If ORC-3 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment groupValue "FILL"
OBR-3Filler Order Number
EIidentifier[2].type.coding.systemuri
If ORC-3 of the same ORC/OBR pair is not valued OR there is ORC segment in the current ORDER_OBSERVATION segment groupValue "http://terminology.hl7.org/CodeSystem/v2-0203"
OBR-4Universal Service Identifier
CWEcodeCodeableConcept
OBR-7Observation Date/Time #
DTMeffectiveDateTimedateTime
If IF OBR-8 NOT VALUED
OBR-7Observation Date/Time #
DTMeffectivePeriod.startdateTime
If IF OBR-8 VALUED
OBR-8Observation End Date/Time #
DTMeffectivePeriod.enddateTime
OBR-22Results Rpt/Status Chng - Date/Time +
DTMissuedinstant
OBR-24Diagnostic Serv Sect Id
IDcategoryCodeableConcept
Code map v2-0074
OBR-25Result Status +
IDstatuscode
OBR-32Principal Result Interpreter +
NDLresultsInterpreter(PractitionerRole)Reference(PractitionerRole)
OBR-34Technician +
NDLperformer[1](PractitionerRole)Reference(PractitionerRole)
OBR-34Technician +
NDLperformer[1].extension[1].urluri
Value "http://hl7.org/fhir/StructureDefinition/event-performerFunction"
OBR-34Technician +
NDLperformer[1].extension[1].valueCodeableConcept.coding.codecode
Value "SPRF"
OBR-34Technician +
NDLperformer[1].extension[1].valueCodeableConcept.coding.systemuri
Value "http://terminology.hl7.org/CodeSystem/v3-ParticipationType"
OBR-35Transcriptionist +
NDLperformer[2](PractitionerRole)Reference(Practitioner)
OBR-35Transcriptionist +
NDLperformer[2].extension[1].urluri
Value "http://hl7.org/fhir/StructureDefinition/event-performerFunction"
OBR-35Transcriptionist +
NDLperformer[2].extension[1].valueCodeableConcept.coding.codecode
Value "TRANS"
OBR-35Transcriptionist +
NDLperformer[2].extension[1].valueCodeableConcept.coding.systemuri
Value "http://terminology.hl7.org/CodeSystem/v3-ParticipationType"

To ServiceRequest29 rows

HL7 v2 sourcev2 typeFHIR elementFHIR typeConditions and notes
OBRwhole segment
intent
Value "order"
OBR-2Placer Order Number
EIidentifier[1]Identifier
If IF ORC-2 NOT VALUED
OBR-2Placer Order Number
EIidentifier[1].type.coding.codecode
If IF ORC-2 NOT VALUEDValue "PLAC"
OBR-2Placer Order Number
EIidentifier[1].type.coding.systemuri
If IF ORC-2 NOT VALUEDValue "http://terminology.hl7.org/CodeSystem/v2-0203"
OBR-3Filler Order Number
EIidentifier[2]Identifier
If IF ORC-3 NOT VALUED
OBR-3Filler Order Number
EIidentifier[2].type.coding.codecode
If IF ORC-3 NOT VALUEDValue "FILL"
OBR-3Filler Order Number
EIidentifier[2].type.coding.systemuri
If IF ORC-3 NOT VALUEDValue "http://terminology.hl7.org/CodeSystem/v2-0203"
OBR-4Universal Service Identifier
CWEcodeCodeableConcept
OBR-5Priority
IDprioritycode
OBR-6Requested Date/Time
TSoccurrenceDateTimedateTime
OBR-11Specimen Action Code *
IDintent
If IF OBR-11 EQUALS "A"Value "#add-on#"
OBR-11Specimen Action Code *
IDintentcode
If IF OBR-11 EQUALS "G"Value "reflex-order"
OBR-11Specimen Action Code *
IDintent
If IF OBR-11 NOT IN ("G","A")Value "order"
OBR-13Relevant Clinical Information
CWEextension[1].urluri
If this does not represent fasting statusValue "http://hl7.org/fhir/5.0/StructureDefinition/extension-ServiceRequest.supportingInfo"
OBR-13Relevant Clinical Information
CWEextension[1].valueCodeableReference.conceptCodeableReference(Any)
If this does not represent fasting status
OBR-16Ordering Provider
XCNrequester(Practitioner)Reference(Practitioner)
If IF ORC-12 NOT VALUED
OBR-17Order Callback Phone Number
XTNrequester.extension[1].urluri
OBR-17Order Callback Phone Number
XTNrequester.extension[1].valueContactPointContactPoint
OBR-27Quantity/Timing
TQ$this
If IF ORC-7 NOT VALUED AND ORC-6 NOT VALUED
OBR-29Parent
EIPbasedOn[1].identifieridentifier
If IF OBR-29.1 VALUED AND OBR-50 NOT VALUEDIf OBR-29.2 is also valued, implementation needs to decide which one to use.
OBR-29Parent
EIPbasedOn[1].typeuri
If IF OBR-29.1 VALUED AND OBR-50 NOT VALUEDIf OBR-29.2 is also valued, implementation needs to decide which one to use.Value "ServiceRequest"
OBR-29Parent
EIPbasedOn[2].identifieridentifier
If IF OBR-29.2 VALUED AND OBR-50 NOT VALUEDIf OBR-29.1 is also valued, implementation needs to decide which one to use.
OBR-29Parent
EIPbasedOn[2].typeuri
If IF OBR-29.2 VALUED AND OBR-50 NOT VALUEDIf OBR-29.1 is also valued, implementation needs to decide which one to use.Value "ServiceRequest"
OBR-31Reason For Study
CWEreasonCodeCodeableConcept
OBR-46Placer Supplemental Service Information
CWEorderDetail[1]CodeableConcept
OBR-47Filler Supplemental Service Information
CWEorderDetail[2]CodeableConcept
OBR-53Alternate Placer Order Number
CXidentifier[3]Identifier
OBR-53Alternate Placer Order Number
CXidentifier[3].type.coding.codecode
Value "PLAC"
OBR-53Alternate Placer Order Number
CXidentifier[3].type.coding.systemuri
Value "http://terminology.hl7.org/CodeSystem/v2-0203"

To Specimen11 rows

HL7 v2 sourcev2 typeFHIR elementFHIR typeConditions and notes
OBR-2Placer Order Number
EIaccessionIdentifierIdentifier
If the placer number is also the accession identifier.
OBR-7Observation Date/Time #
DTMcollection.collectedDateTimedateTime
If IF OBR-8 NOT VALUED
OBR-7Observation Date/Time #
DTMcollection.collectedPeriod.startdateTime
If IF OBR-8 VALUED
OBR-8Observation End Date/Time #
DTMcollection.collectedPeriod.enddateTime
OBR-9Collection Volume *
CQcollection.quantitySimpleQuantity
OBR-10Collector Identifier *
XCNcollection.collector(Practitioner)Reference(Practitioner)
OBR-13Relevant Clinical Information
CWEcollection.fastingStatusCodeableConcept
If information represents fasting status
OBR-13Relevant Clinical Information
CWEcollection.fastingStatusDuration
If information represents fasting duration
OBR-14Specimen Received Date/Time
TSreceivedTimedateTime
OBR-15Specimen Source
SPS$this
OBR-39Collector's Comment *
CWEnoteAnnotation