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 ORC to ServiceRequest Map (Experimental)

Official URL: http://hl7.org/fhir/uv/v2mappings/ConceptMap/segment-orc-to-servicerequest Version: 1.0.0
Standards status: Informative Computable Name: SegmentORCToServiceRequest

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

This ConceptMap represents a mapping from the HL7 V2 Segment ORC to the FHIR ServiceRequest Resource.

This ConceptMap represents the mapping from the HL7 V2 ORC Segment to the FHIR ServiceRequest 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
1ORC-1Order ControlID11IF ORC-5 NOT VALUEDORC.element("5").empty()ServiceRequest.statuscode11OrderControlCode[ServiceRequest.status]This is a complicated mapping where .status, .intent, and Task get involved that may have various localized interpretation.
1ORC-1Order ControlID11ServiceRequest.intentcode11"order"
1ORC-1Order ControlID11ServiceRequest.extension.urluri11"http://hl7.org/fhir/StructureDefinition/businessEvent"
1ORC-1Order ControlID11ServiceRequest.extension.extension.urluri11"value"
1ORC-1Order ControlID11ServiceRequest.extension.extension.valueCodeableConcept.coding.codecode11
1ORC-1Order ControlID11ServiceRequest.extension.extension.valueCodeableConcept.coding.systemuri11"http://terminology.hl7.org/ValueSet/v2-0119"
2ORC-2Placer Order NumberEI01IF OBR-2 NOT VALUEDOBR.element("2").empty()IdentifierIdentifier0-1EI[Identifier-Extension]
2ORC-2Placer Order NumberEI01IF OBR-2 NOT VALUEDOBR.element("2").empty()ServiceRequest.identifier.type.coding.codecode01"PLAC"
2ORC-2Placer Order NumberEI01IF OBR-2 NOT VALUEDOBR.element("2").empty()ServiceRequest.identifier.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
3ORC-3Filler Order NumberEI01IF OBR-3 NOT VALUEDOBR.element("3").empty()IdentifierIdentifier0-1EI[Identifier-Extension]
3ORC-3Filler Order NumberEI01IF OBR-3 NOT VALUEDOBR.element("3").empty()ServiceRequest.identifier.type.coding.codecode01"FILL"
3ORC-3Filler Order NumberEI01IF OBR-3 NOT VALUEDOBR.element("3").empty()ServiceRequest.identifier.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
4ORC-4Placer Group NumberEI01If ORC-4 data type "EI" is usedServiceRequest.requisition.valueIdentifier01
4ORC-4Placer Group NumberEI01If ORC-4 data type "EI" is usedServiceRequest.requisition.type.coding.codecode01"PGN"
4ORC-4Placer Group NumberEIIf ORC-4 data type "EI" is usedServiceRequest.requisition.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
4ORC-4Placer Group NumberEIP01If ORC-4 data type "EIP" is usedServiceRequest.requisition.valueIdentifier01Note that the ORC-4 data type was changed from EI to EIP in 2.8.2 and then changed back to EI in 2.9 while ORC-38 was added. This mapping ensures that a Filler Group Number always is mapped to ServiceRequest.identifier.
4ORC-4Placer Group NumberEIP01If ORC-4 data type "EIP" is usedServiceRequest.requisition.type.coding.codecode01"PGN"
4ORC-4Placer Group NumberEIP01If ORC-4 data type "EIP" is usedServiceRequest.requisition.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
4ORC-4Placer Group NumberEIP01IF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDIf ORC-4 data type "EIP" is usedServiceRequest.identifier.valueIdentifier01
4ORC-4Placer Group NumberEIP01IF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDIf ORC-4 data type "EIP" is usedServiceRequest.identifier.type.coding.codecode01"FGN"
4ORC-4Placer Group NumberEIP01IF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDIf ORC-4 data type "EIP" is usedServiceRequest.identifier.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
5ORC-5Order StatusID01ServiceRequest.statuscode11OrderStatus
6ORC-6Response FlagID01
7ORC-7Quantity/TimingTQ0-1ServiceRequest.$thisTQ[ServiceRequest]
8ORC-8Parent OrderEIP0-1This will be addressed in a future edition when addressing parent relationships for micro results.
9ORC-9Date/Time of Order EventDTM01IF ORC.1 IS "NW"ORC.element("1")="NW"ServiceRequest.authoredOndateTime01
9ORC-9Date/Time of Order EventDTM01ServiceRequest.extension.urluri11"http://hl7.org/fhir/StructureDefinition/businessEvent"
9ORC-9Date/Time of Order EventDTM01ServiceRequest.extension.extension.urluri11"date"
9ORC-9Date/Time of Order EventDTM01ServiceRequest.extension.extension.valuedateTimedateTime11
10ORC-10Entered ByXCN0-1
11ORC-11Verified ByXCN0-1
12ORC-12Ordering ProviderXCN0-1ServiceRequest.requester(ServiceRequest.PractitionerRole.practitioner)Reference(ServiceRequest.Practitioner)01XCN[Practitioner]
13ORC-13Enterer's LocationPL01
14ORC-14Call Back Phone NumberXTN02IF OBR-17 NOT VALUEDOBR.element("17").empty()ServiceRequest.extension.urluri02"http://hl7.org/fhir/StructureDefinition/servicerequest-order-callback-phone-number"
14ORC-14Call Back Phone NumberXTN02IF OBR-17 NOT VALUEDOBR.element("17").empty()ServiceRequest.extension.valueContactPointContactPoint02XTN[ContactPoint]
15ORC-15Order Effective Date/TimeDTM01dateTime01We are requesting ballot feedback on how systems are using ORC-15 today so that we can either establish a mapping or define a new extension
16ORC-16Order Control Code ReasonCWE01IF ORC-5 NOT VALUEDServiceRequest.extension.urluri11"http://hl7.org/fhir/StructureDefinition/request-statusReason"
16ORC-16Order Control Code ReasonCWE01IF ORC-5 NOT VALUEDServiceRequest.extension.valueCodeableConceptCodeableConcept11CWE[CodeableConcept]
16ORC-16Order Control Code ReasonCWE01extension??-orderControlCodeReasonCodeableConcept01CWE[CodeableConcept]
17ORC-17Entering OrganizationCWE01
18ORC-18Entering DeviceCWE01
19ORC-19Action ByXCN0-1
20ORC-20Advanced Beneficiary Notice CodeCWE01
21ORC-21Ordering Facility NameXON0-1ServiceRequest.requester(ServiceRequest.PractitionerRole.organization(ServiceRequest.Organization)Reference(ServiceRequest.Organization)01XON[Organization]PractitionerRole.location is an alternative mapping, we invite ballot comments on which element in PractitionerRole is best.
22ORC-22Ordering Facility AddressXAD0-1ServiceRequest.requester(ServiceRequest.PractitionerRole.organization(ServiceRequest.Organization.address)Address0-1XAD[Address]
23ORC-23Ordering Facility Phone NumberXTN0-1ServiceRequest.requester(ServiceRequest.PractitionerRole.organization(ServiceRequest.Organization.telecom)ContactPoint0-1XTN[ContactPoint]
24ORC-24Ordering Provider AddressXAD0-1ServiceRequest.requester(ServiceRequest.PractitionerRole.practitioner(ServiceRequest.Practitioner.address)XAD[Address]We request feedback on whether this address is more directly related to the Practitioner rather than the PractitionerRole
25ORC-25Order Status ModifierCWE01extension??-statusModifierCodeableConcept01CWE[CodeableConcept]
26ORC-26Advanced Beneficiary Notice Override ReasonCWE01
27ORC-27Filler's Expected Availability Date/TimeDTM01
28ORC-28Confidentiality CodeCWE01meta.securityCoding0-1CWE[Coding]ConfidentialityCode
29ORC-29Order TypeCWE01ServiceRequest.locationCodeCodeableConcept0-1CWE[CodeableConcept]OrderType
30ORC-30Enterer Authorization ModeCNE01
31ORC-31Parent Universal Service IdentifierCWE01basedOn[1].extension??-parent.serviceCodeableConceptCWE[CodeableConcept]
32ORC-32Advanced Beneficiary Notice DateDT01
33ORC-33Alternate Placer Order NumberCX0-1IF OBR-53 NOT VALUEDOBR.element("2").empty()IdentifierIdentifier0-1CX[Identifier]
33ORC-33Alternate Placer Order NumberCX0-1IF OBR-53 NOT VALUEDOBR.element("2").empty()ServiceRequest.identifier.type.coding.codecode01"PLAC"
33ORC-33Alternate Placer Order NumberCX0-1IF OBR-53 NOT VALUEDOBR.element("2").empty()ServiceRequest.identifier.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"
34ORC-34Order Workflow ProfileCWE0-1
35ORC-35Action CodeID01
36ORC-36Order Status Date RangeDR01
37ORC-37Order Creation Date/TimeDTM01
38ORC-38Filler Order Group NumberEI01ServiceRequest.identifier.valueIdentifier01
38ORC-38Filler Order Group NumberEI01ServiceRequest.identifier.type.coding.codecode01"FGN"
38ORC-38Filler Order Group NumberEI01ServiceRequest.identifier.type.coding.systemuri01"http://terminology.hl7.org/CodeSystem/v2-0203"

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 NarrativeConditionComputableFHIRPathComputableANTLRCodes from
ORC-1Order ControlORC.element("5").empty()IF ORC-5 NOT VALUEDis equivalent tostatusstatusThis is a complicated mapping where .status, .intent, and Task get involved that may have various localized interpretation.
ORC-1Order Controlis equivalent tointentintent
ORC-1Order Controlis equivalent toextension.urlextension.url
ORC-1Order Controlis equivalent toextension[1].extension[1].urlextension[1].extension[1].url
ORC-1Order Controlis equivalent toextension[1].extension[1].valueCodeableConcept.coding.codeextension[1].extension[1].valueCodeableConcept.coding.code
ORC-1Order Controlis equivalent toextension[1].extension[1].valueCodeableConcept.coding.systemextension[1].extension[1].valueCodeableConcept.coding.system
ORC-2Placer Order NumberOBR.element("2").empty()IF OBR-2 NOT VALUEDis equivalent toidentifier[1]identifier[1]
ORC-2Placer Order NumberOBR.element("2").empty()IF OBR-2 NOT VALUEDis equivalent toidentifier[1].type.coding.codeidentifier[1].type.coding.code
ORC-2Placer Order NumberOBR.element("2").empty()IF OBR-2 NOT VALUEDis equivalent toidentifier[1].type.coding.systemidentifier[1].type.coding.system
ORC-3Filler Order NumberOBR.element("3").empty()IF OBR-3 NOT VALUEDis equivalent toidentifier[2]identifier[2]
ORC-3Filler Order NumberOBR.element("3").empty()IF OBR-3 NOT VALUEDis equivalent toidentifier[2].type.coding.codeidentifier[2].type.coding.code
ORC-3Filler Order NumberOBR.element("3").empty()IF OBR-3 NOT VALUEDis equivalent toidentifier[2].type.coding.systemidentifier[2].type.coding.system
ORC-4Placer Group NumberIf ORC-4 data type "EI" is usedis equivalent torequisition[1].valuerequisition[1].value
ORC-4Placer Group NumberIf ORC-4 data type "EI" is usedis equivalent torequisition[1].type.coding.coderequisition[1].type.coding.code
ORC-4Placer Group NumberIf ORC-4 data type "EI" is usedis equivalent torequisition[1].type.coding.systemrequisition[1].type.coding.system
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedis equivalent torequisition[2].valuerequisition[2].valueNote that the ORC-4 data type was changed from EI to EIP in 2.8.2 and then changed back to EI in 2.9 while ORC-38 was added. This mapping ensures that a Filler Group Number always is mapped to ServiceRequest.identifier.
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedis equivalent torequisition[2].type.coding.coderequisition[2].type.coding.code
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedis equivalent torequisition[2].type.coding.systemrequisition[2].type.coding.system
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedIF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDis equivalent toidentifier[3].valueidentifier[3].value
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedIF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDis equivalent toidentifier[3].type.coding.codeidentifier[3].type.coding.code
ORC-4Placer Group NumberIf ORC-4 data type "EIP" is usedIF ORC-4.2 VALUED AND ORC-38 IS NOT VALUEDis equivalent toidentifier[3].type.coding.systemidentifier[3].type.coding.system
ORC-5Order Statusis equivalent tostatusstatus
ORC-7Quantity/Timingis equivalent to$this$this
ORC-9Date/Time of Order EventORC.element("1")="NW"IF ORC.1 IS "NW"is equivalent toauthoredOnauthoredOn
ORC-9Date/Time of Order Eventis equivalent toextension[2].urlextension[2].url
ORC-9Date/Time of Order Eventis equivalent toextension[2].extension[1].urlextension[2].extension[1].url
ORC-9Date/Time of Order Eventis equivalent toextension[2].extension[1].valuedateTimeextension[2].extension[1].valuedateTime
ORC-12Ordering Provideris equivalent torequester(PractitionerRole.practitioner)requester(PractitionerRole.practitioner)
ORC-14Call Back Phone NumberOBR.element("17").empty()IF OBR-17 NOT VALUEDis equivalent toextension[3].urlextension[3].url
ORC-14Call Back Phone NumberOBR.element("17").empty()IF OBR-17 NOT VALUEDis equivalent toextension[3].valueContactPointextension[3].valueContactPoint
ORC-16Order Control Code ReasonIF ORC-5 NOT VALUEDis equivalent toextension[3].urlextension[3].url
ORC-16Order Control Code ReasonIF ORC-5 NOT VALUEDis equivalent toextension[3].valueCodeableConceptextension[3].valueCodeableConcept
ORC-21Ordering Facility Nameis equivalent torequester(PractitionerRole.organization(Organization))requester(PractitionerRole.organization(Organization))PractitionerRole.location is an alternative mapping, we invite ballot comments on which element in PractitionerRole is best.
ORC-22Ordering Facility Addressis equivalent torequester(PractitionerRole.organization(Organization.address))requester(PractitionerRole.organization(Organization.address))
ORC-23Ordering Facility Phone Numberis equivalent torequester(PractitionerRole.organization(Organization.telecom))requester(PractitionerRole.organization(Organization.telecom))
ORC-24Ordering Provider Addressis equivalent torequester(PractitionerRole.practitioner(Practitioner.address))requester(PractitionerRole.practitioner(Practitioner.address))We request feedback on whether this address is more directly related to the Practitioner rather than the PractitionerRole
ORC-28Confidentiality Codeis equivalent tometa.securitymeta.security
ORC-29Order Typeis equivalent tolocationCodelocationCode
ORC-33Alternate Placer Order NumberOBR.element("2").empty()IF OBR-53 NOT VALUEDis equivalent toidentifier[4]identifier[4]
ORC-33Alternate Placer Order NumberOBR.element("2").empty()IF OBR-53 NOT VALUEDis equivalent toidentifier[4].type.coding.codeidentifier[4].type.coding.code
ORC-33Alternate Placer Order NumberOBR.element("2").empty()IF OBR-53 NOT VALUEDis equivalent toidentifier[4].type.coding.systemidentifier[4].type.coding.system
ORC-38Filler Order Group Numberis equivalent toidentifier[5].valueidentifier[5].value
ORC-38Filler Order Group Numberis equivalent toidentifier[5].type.coding.codeidentifier[5].type.coding.code
ORC-38Filler Order Group Numberis equivalent toidentifier[5].type.coding.systemidentifier[5].type.coding.system

Notes: