DRAFT - The specification is currently in development and subject to significant change. It is not ready for limited roll-out or production level use.

ServiceRequest (CA:eReC)

Structure Definition: ServiceRequest Profile

Canonical URL:http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest

Simplifier project page: ServiceRequest

Derived from: ServiceRequest (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
PatientPresentLocationI0..*Extension(Reference(Location))
DARCI0..*Extension(Complex)
DARTI0..*Extension(Complex)
RoutingOptionsI0..*Extension(CodeableConcept)
CopiedParticipantsI0..*Extension(Reference(PractitionerRole))
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusS Σ ?!1..1codeBinding
intentS Σ ?!1..1codeBindingFixed Value
categoryS Σ0..*CodeableConceptBinding
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
codeS Σ0..1CodeableConceptBinding
orderDetailΣ I0..*CodeableConcept
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnS Σ1..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationCodeΣ0..*CodeableConcept
locationReferenceΣ I0..*Reference(Location)
reasonCodeS Σ0..*CodeableConceptBinding
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
insuranceI0..*Reference(Coverage | ClaimResponse)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
specimenΣ I0..*Reference(Specimen)
bodySiteΣ0..*CodeableConcept
id0..1string
extensionI0..*Extension
authorStringstring
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
timeΣ0..1dateTime
textΣ1..1markdown
patientInstructionΣ0..1string
relevantHistoryI0..*Reference(Provenance)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
PatientPresentLocationI0..*Extension(Reference(Location))
DARCI0..*Extension(Complex)
DARTI0..*Extension(Complex)
RoutingOptionsI0..*Extension(CodeableConcept)
CopiedParticipantsI0..*Extension(Reference(PractitionerRole))
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusS Σ ?!1..1codeBinding
intentS Σ ?!1..1codeBindingFixed Value
categoryS Σ0..*CodeableConceptBinding
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
codeS Σ0..1CodeableConceptBinding
orderDetailΣ I0..*CodeableConcept
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnS Σ1..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationCodeΣ0..*CodeableConcept
locationReferenceΣ I0..*Reference(Location)
reasonCodeS Σ0..*CodeableConceptBinding
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
insuranceI0..*Reference(Coverage | ClaimResponse)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
specimenΣ I0..*Reference(Specimen)
bodySiteΣ0..*CodeableConcept
id0..1string
extensionI0..*Extension
authorStringstring
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
timeΣ0..1dateTime
textΣ1..1markdown
patientInstructionΣ0..1string
relevantHistoryI0..*Reference(Provenance)
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
PatientPresentLocationI0..*Extension(Reference(Location))
DARCI0..*Extension(Complex)
DARTI0..*Extension(Complex)
RoutingOptionsI0..*Extension(CodeableConcept)
CopiedParticipantsI0..*Extension(Reference(PractitionerRole))
modifierExtension?! I0..*Extension
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
instantiatesCanonicalΣ0..*canonical(ActivityDefinition | PlanDefinition)
instantiatesUriΣ0..*uri
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
statusS Σ ?!1..1codeBinding
intentS Σ ?!1..1codeBindingFixed Value
categoryS Σ0..*CodeableConceptBinding
priorityΣ0..1codeBinding
doNotPerformΣ ?!0..1boolean
codeS Σ0..1CodeableConceptBinding
orderDetailΣ I0..*CodeableConcept
quantityQuantityQuantity
quantityRatioRatio
quantityRangeRange
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
encounterΣ I0..1Reference(Encounter)
occurrenceDateTimedateTime
occurrencePeriodPeriod
occurrenceTimingTiming
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
authoredOnS Σ1..1dateTime
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
performerTypeΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
locationCodeΣ0..*CodeableConcept
locationReferenceΣ I0..*Reference(Location)
reasonCodeS Σ0..*CodeableConceptBinding
reasonReferenceΣ I0..*Reference(Condition | Observation | DiagnosticReport | DocumentReference)
insuranceI0..*Reference(Coverage | ClaimResponse)
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
specimenΣ I0..*Reference(Specimen)
bodySiteΣ0..*CodeableConcept
id0..1string
extensionI0..*Extension
authorStringstring
id0..1string
extensionI0..*Extension
referenceS Σ I0..1string
typeΣ0..1uriBinding
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
typeΣ0..1CodeableConceptBinding
systemS Σ1..1uri
valueS Σ1..1string
periodΣ I0..1Period
assignerΣ I0..1Reference(Organization)
displayΣ0..1string
timeΣ0..1dateTime
textΣ1..1markdown
patientInstructionΣ0..1string
relevantHistoryI0..*Reference(Provenance)
ServiceRequest..
ServiceRequest.extension..
ServiceRequest.extensionExtension..
ServiceRequest.extensionExtension..
ServiceRequest.extensionExtension..
ServiceRequest.extensionExtension..
ServiceRequest.extensionExtension..
ServiceRequest.identifier..
ServiceRequest.identifier.system1..
ServiceRequest.identifier.value1..
ServiceRequest.basedOnReference(ServiceRequest)..1
ServiceRequest.basedOn.reference..
ServiceRequest.basedOn.identifier..
ServiceRequest.basedOn.identifier.system1..
ServiceRequest.basedOn.identifier.value1..
ServiceRequest.replacesReference(ServiceRequest)..
ServiceRequest.replaces.reference..
ServiceRequest.replaces.identifier..
ServiceRequest.replaces.identifier.system1..
ServiceRequest.replaces.identifier.value1..
ServiceRequest.requisition..
ServiceRequest.requisition.system1..
ServiceRequest.requisition.value1..
ServiceRequest.status..
ServiceRequest.intent..
ServiceRequest.category..
ServiceRequest.code..
ServiceRequest.subjectReference(Patient)..
ServiceRequest.subject.reference..
ServiceRequest.subject.identifier..
ServiceRequest.subject.identifier.system1..
ServiceRequest.subject.identifier.value1..
ServiceRequest.authoredOn1..
ServiceRequest.requesterReference(PractitionerRole | Patient)1..
ServiceRequest.requester.reference..
ServiceRequest.requester.identifier..
ServiceRequest.requester.identifier.system1..
ServiceRequest.requester.identifier.value1..
ServiceRequest.performerReference(PractitionerRole | HealthcareService)1..*
ServiceRequest.performer.reference..
ServiceRequest.performer.identifier..
ServiceRequest.performer.identifier.system1..
ServiceRequest.performer.identifier.value1..
ServiceRequest.reasonCode..
ServiceRequest.supportingInfoReference(Resource | DocumentReference | Communication | QuestionnaireResponse | ConditionPSCA | AllergyIntolerancePSCA)..
ServiceRequest.supportingInfo.reference..
ServiceRequest.supportingInfo.identifier..
ServiceRequest.supportingInfo.identifier.system1..
ServiceRequest.supportingInfo.identifier.value1..
ServiceRequest.note..
ServiceRequest.note.author[x]..
ServiceRequest.note.author[x]Reference(Practitioner | Organization | Patient)0..1
ServiceRequest.note.author[x].reference..
ServiceRequest.note.author[x].identifier..
ServiceRequest.note.author[x].identifier.system1..
ServiceRequest.note.author[x].identifier.value1..

{
    "resourceType": "StructureDefinition",
    "id": "CA-eReC-ServiceRequest",
    "url": "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest",
    "name": "ServiceRequest",
    "title": "ServiceRequest",
    "status": "draft",
    "description": "ServiceRequest is the main resource used to send all referral related information to the destination system.",
    "fhirVersion": "4.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "ServiceRequest",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/ServiceRequest",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "ServiceRequest.extension",
                "path": "ServiceRequest.extension",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "url"
                        }
                    ],
                    "ordered": false,
                    "rules": "open"
                }
            },
            {
                "id": "ServiceRequest.extension:PatientPresentLocation",
                "path": "ServiceRequest.extension",
                "sliceName": "PatientPresentLocation",
                "short": "USE CASE SUPPORT: Systems deployed in Ontario SHALL support",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient-Present-Location-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.extension:DARC",
                "path": "ServiceRequest.extension",
                "sliceName": "DARC",
                "short": "USE CASE SUPPORT: Systems deployed in Ontario SHALL support",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/DARC-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.extension:DART",
                "path": "ServiceRequest.extension",
                "sliceName": "DART",
                "short": "USE CASE SUPPORT: Systems deployed in Ontario SHALL support",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/DART-ext"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.extension:RoutingOptions",
                "path": "ServiceRequest.extension",
                "sliceName": "RoutingOptions",
                "short": "USE CASE SUPPORT: Systems deployed in Ontario SHALL support",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/Routing-Options-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.extension:CopiedParticipants",
                "path": "ServiceRequest.extension",
                "sliceName": "CopiedParticipants",
                "short": "USE CASE SUPPORT: Systems deployed in Ontario SHALL support",
                "type":  [
                    {
                        "code": "Extension",
                        "profile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-copied-participants-EXT"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.identifier",
                "path": "ServiceRequest.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.identifier.system",
                "path": "ServiceRequest.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.identifier.value",
                "path": "ServiceRequest.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.basedOn",
                "path": "ServiceRequest.basedOn",
                "short": "𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support",
                "max": "1",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.basedOn.reference",
                "path": "ServiceRequest.basedOn.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.basedOn.identifier",
                "path": "ServiceRequest.basedOn.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.basedOn.identifier.system",
                "path": "ServiceRequest.basedOn.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.basedOn.identifier.value",
                "path": "ServiceRequest.basedOn.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.replaces",
                "path": "ServiceRequest.replaces",
                "short": "𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.replaces.reference",
                "path": "ServiceRequest.replaces.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.replaces.identifier",
                "path": "ServiceRequest.replaces.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.replaces.identifier.system",
                "path": "ServiceRequest.replaces.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.replaces.identifier.value",
                "path": "ServiceRequest.replaces.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requisition",
                "path": "ServiceRequest.requisition",
                "short": "𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support"
            },
            {
                "id": "ServiceRequest.requisition.system",
                "path": "ServiceRequest.requisition.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requisition.value",
                "path": "ServiceRequest.requisition.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.status",
                "path": "ServiceRequest.status",
                "mustSupport": true,
                "binding": {
                    "strength": "required",
                    "valueSet": "http://hl7.org/fhir/ValueSet/request-status"
                }
            },
            {
                "id": "ServiceRequest.intent",
                "path": "ServiceRequest.intent",
                "fixedCode": "proposal",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.category",
                "path": "ServiceRequest.category",
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetcare"
                },
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.code",
                "path": "ServiceRequest.code",
                "short": "Note that the meaning of this field is to be used in conjunction with ServiceRequest.performer pointing to a HealthCareservice, and .code further specifies the service, for example code could be a specific procedure under the specificed HealthcareService (e.g., HealthcareService = Orthopaedic Surgeon, code=Knee Surgery)",
                "mustSupport": true,
                "binding": {
                    "strength": "extensible",
                    "valueSet": "http://fhir.infoway-inforoute.ca/ValueSet/interventioncodesubsetcare"
                }
            },
            {
                "id": "ServiceRequest.subject",
                "path": "ServiceRequest.subject",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.subject.reference",
                "path": "ServiceRequest.subject.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.subject.identifier",
                "path": "ServiceRequest.subject.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.subject.identifier.system",
                "path": "ServiceRequest.subject.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.subject.identifier.value",
                "path": "ServiceRequest.subject.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.authoredOn",
                "path": "ServiceRequest.authoredOn",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester",
                "path": "ServiceRequest.requester",
                "min": 1,
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester.reference",
                "path": "ServiceRequest.requester.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester.identifier",
                "path": "ServiceRequest.requester.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester.identifier.system",
                "path": "ServiceRequest.requester.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.requester.identifier.value",
                "path": "ServiceRequest.requester.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.performer",
                "path": "ServiceRequest.performer",
                "min": 1,
                "max": "*",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-PractitionerRole",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-HealthcareService"
                        ],
                        "aggregation":  [
                            "referenced"
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.performer.reference",
                "path": "ServiceRequest.performer.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.performer.identifier",
                "path": "ServiceRequest.performer.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.performer.identifier.system",
                "path": "ServiceRequest.performer.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.performer.identifier.value",
                "path": "ServiceRequest.performer.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.reasonCode",
                "path": "ServiceRequest.reasonCode",
                "mustSupport": true,
                "binding": {
                    "extension":  [
                        {
                            "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-bindingName",
                            "valueString": "ServiceRequestReason"
                        }
                    ],
                    "strength": "preferred",
                    "description": "Diagnosis or problem codes justifying the reason for requesting the service investigation.",
                    "valueSet": "http://hl7.org/fhir/ValueSet/procedure-reason"
                }
            },
            {
                "id": "ServiceRequest.supportingInfo",
                "path": "ServiceRequest.supportingInfo",
                "definition": "Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations.  In laboratory ordering these are typically referred to as \"ask at order entry questions (AOEs)\".  This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example,  reporting the amount of inspired oxygen for blood gas measurements.",
                "comment": "To represent information about how the services are to be delivered use the `instructions` element. This element can be used to provide a Patient Summary as well.",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://hl7.org/fhir/StructureDefinition/Resource",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-DocumentReference",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Communication",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-QuestionnaireResponse",
                            "http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/condition-ca-ps",
                            "http://fhir.infoway-inforoute.ca/io/psca/StructureDefinition/allergyintolerance-ca-ps"
                        ],
                        "_targetProfile":  [
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": false
                                    }
                                ]
                            },
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": true
                                    }
                                ]
                            },
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": true
                                    }
                                ]
                            },
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": true
                                    }
                                ]
                            },
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": false
                                    }
                                ]
                            },
                            {
                                "extension":  [
                                    {
                                        "url": "http://hl7.org/fhir/StructureDefinition/elementdefinition-type-must-support",
                                        "valueBoolean": false
                                    }
                                ]
                            }
                        ]
                    }
                ],
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.supportingInfo.reference",
                "path": "ServiceRequest.supportingInfo.reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.supportingInfo.identifier",
                "path": "ServiceRequest.supportingInfo.identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.supportingInfo.identifier.system",
                "path": "ServiceRequest.supportingInfo.identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.supportingInfo.identifier.value",
                "path": "ServiceRequest.supportingInfo.identifier.value",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.note",
                "path": "ServiceRequest.note",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.note.author[x]",
                "path": "ServiceRequest.note.author[x]",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "type",
                            "path": "$this"
                        }
                    ],
                    "ordered": false,
                    "rules": "open"
                }
            },
            {
                "id": "ServiceRequest.note.author[x]:authorReference",
                "path": "ServiceRequest.note.author[x]",
                "sliceName": "authorReference",
                "min": 0,
                "max": "1",
                "type":  [
                    {
                        "code": "Reference",
                        "targetProfile":  [
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Practitioner",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Organization",
                            "http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-Patient"
                        ]
                    }
                ]
            },
            {
                "id": "ServiceRequest.note.author[x]:authorReference.reference",
                "path": "ServiceRequest.note.author[x].reference",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.note.author[x]:authorReference.identifier",
                "path": "ServiceRequest.note.author[x].identifier",
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.note.author[x]:authorReference.identifier.system",
                "path": "ServiceRequest.note.author[x].identifier.system",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "ServiceRequest.note.author[x]:authorReference.identifier.value",
                "path": "ServiceRequest.note.author[x].identifier.value",
                "min": 1,
                "mustSupport": true
            }
        ]
    }
}

Usage

ServiceRequest is the main resource used to send all referral related information to the destination system.

Note: Systems that support routing/chaining/splitting SHALL support .basedOn, .replaces, and .requisition

Notes

.extension:PatientPresentLocation

  • Used for determining the location of the patient, if it is different than the patient's home address, at the time of the referral.

.extension:DARC

  • Used to support the analytics use case in Ontario eReferral-eConsult guide. It is required to identify the dates affecting a patient's readiness to consult.

.extension:DART

  • Used to support the analytics use case in Ontario eReferral-eConsult guide. It is required to identify the dates affecting a patient's readiness to consult.

.extension:RoutingOptions

  • Required for Referral Source Type identification. Used when only one referral routing object expected.

.extension:CopiedParticipants

  • Used to copy updates to the ServiceRequest in cases of forwarding referrals.

.identifier

  • Business identifers associate the information exchanged between systems with the real world entity

  • Any number of business identifiers MAY be included in the resource

  • When a resource is sent back to the sender in a message, all business identifiers received SHOULD be included with the resource to help the sending system to associate the information received with the resource sent

  • Routing: When routing a received parent ServiceRequest by creating a child ServiceRequest, there is a shared .identifier between the parent and child ServiceRequests

  • Splitting: When splitting a received parent ServiceRequest to child ServiceRequests, there is a new .identifier assigned for the child ServiceRequests

  • Chaining: When chaining a new child ServiceRequest with a parent ServiceRequest being performed, there is a new .identifierassigned for the child ServiceRequest(s)

  • Where present, business identifiers provided in a ServiceRequest MAY be used to reference this resource in subsequent messages

  • identifier.system and identifier.value SHALL be mustSupport whenever there is a reference or identifier present

.basedOn

  • 𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support
  • When a service provider performing a parent ServiceRequest creates another child ServiceRequest, .basedOn SHALL be populated on the new child ServiceRequest with a reference to the parent ServiceRequest being performed
  • If the ServiceRequest is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.replaces

  • 𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support
  • When routing/splitting a received parent ServiceRequest to create child ServiceRequest(s), .replaces SHALL reference the parent ServiceRequest received/copied on the new child ServiceRequest(s)
  • the parent ServiceRequest information referenced in .replaces SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.requisition

  • 𝗨𝗦𝗘 𝗖𝗔𝗦𝗘 𝗦𝗨𝗣𝗣𝗢𝗥𝗧: Systems that support routing/chaining/splitting SHALL support

  • Used in cases where multiple connected referrals are made simultaneously (i.e. a .requisition)

  • In these cases:

    • multiple ServiceRequests SHALL be referenced in MessageHeader.focus
    • each of the ServiceRequests in MessageHeader.focus SHALL have the same identifier in ServiceRequest.requisition
    • the identifier used in ServiceRequest.requisition SHALL also be used in MessageHeader.extension:ReferralIdentifier
  • When splitting a received parent ServiceRequest to create many child ServiceRequests, .requisition SHALL be copied from an .identifier from the parent ServiceRequest

  • Note that additional business rules apply to requisitions

  • For eReferral usage: It is highly recommended that the common elements should match between multiple ServiceRequests (e.g., patient, requester, etc...) Requests are linked either by a .basedOn relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation.

.status

  • Used to communicate the current status of the ServiceRequest on the requester's system

.intent

  • populate with the fixed value: "proposal"

.category

  • this is not needed for P2P referrals
  • for CAT/CI, this is the specialty being request, eg. Urology, Othopedics, etc.

.code

.subject

  • Identifies the patient being referred to the service provider
  • SHALL be populated with a reference to a Patient resource
  • If the ServiceRequest is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.authoredOn

  • For eReferral usage: .authoredOn is the submission time of the sending system
  • Note: if this element corresponds to the dateTime the author "signed" the request, it could be populated with a time before the message was actually submitted

.requester

  • Identifies the person who requested the service
  • SHALL be populated with a reference to a PractitionerRole resource or, for self-referrals, a Patient resource
  • If the ServiceRequest is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.performer

  • Identifies the requested service or service provider
  • If the ServiceRequest is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.reasonCode

  • provides the reason for the referral. This could be coded but is very often conveyed as text

.supportingInfo

  • Used to associate supporting information in the patient's record with a ServiceRequest
  • MAY be populated with references to QuestionnaireResponse, and/or other FHIR resources in the future to associate structured information with a ServiceRequest
    • Implementers intending to send allergy, intolerance and condition supporting information SHOULD refer to PS-CA versions of these profiles for pan-Canadian guidance until these resources are profiled for future versions of this guide. (AllergyIntolerance (PS-CA), Condition(PS-CA))
  • MAY be populated with references to DocumentReference to associate binary attachments with a ServiceRequest. The Patient Summary may be attached as PDF document here for future use.
  • MAY also attach Patient Summary documents here
  • If the ServiceRequest is being transmitted via messaging, this element SHALL either:
    • .reference a resource included in the message as a Bundle.entry, or
    • include an .identifier previously known to both systems

.note

  • Used to communicate information that cannot be referenced in supportingInfo with a ServiceRequest

  • MAY be used when the referral source system has a custom data capture form with fields are not mapped to a resource (e.g., Food preference, home visit risk factors, etc...).

  • If note.author and note.time are not populated, these SHOULD be assumed to be the requester and authoredOn respectively (this is expected to be the normal use case)

  • FOR eREFERRAL USAGE:

  • note is used to include additional information in the referral that is not captured by an existing resource or in a DocumentReference. This is often used when the sending application has a custom data capture form with fields are not mapped to a resource (e.g., Food preference, home visit risk factors, etc...).

  • For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information.

  • Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).