FHIR Artifacts > Structure Definition: ServiceRequest Profile
Structure Definition: ServiceRequest Profile
Canonical URL:http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-ServiceRequest
Simplifier project page: ServiceRequest
Derived from: ServiceRequest (CA:eReC)
Base FHIR: ServiceRequest
Formal Views of Profile Content
Description of Profiles, Differentials, Snapshots and how the different presentations work
Differential View
| EReferralServiceRequest (ServiceRequest) | http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest | ||
| meta | S | 1.. | |
| profile | S | 1.. | |
| PatientPresentLocation | ..1 | ||
| value[x] | S | ||
| reference | S | ||
| identifier | S | ||
| DARC | ..1 | ||
| DART | ..1 | ||
| RoutingOptions | |||
| value[x] | S | ||
| coding | S | Binding | |
| CopiedParticipants | |||
| serviceProviderPreference | S | Extension(Complex) | |
| identifier | |||
| use | S | ||
| type | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| basedOn | Reference(EReferralServiceRequest) | ||
| replaces | Reference(EReferralServiceRequest) | ||
| requisition | |||
| priority | S | ||
| code | Binding | ||
| coding | |||
| system | S | 1.. | Fixed Value |
| code | S | 1.. | Binding |
| display | S | 1.. | |
| orderDetail | |||
| coding | |||
| system | 1.. | ||
| code | 1.. | ||
| display | 1.. | ||
| subject | Reference(EReferralPatient) | ||
| authoredOn | |||
| requester | Reference(EReferralPatient | EReferralPractitionerRole) | ||
| serviceRequestDelegate | S | Extension(Complex) | |
| performer | Reference(EReferralHealthcareService | EReferralPractitionerRole) | ||
| performerIdentifier | S | ..1 | Extension(Identifier) |
| reasonCode | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| text | S | ||
| supportingInfo | Reference(EReferralAllergyIntolerance | EReferralCommunication | EReferralCondition | EReferralConsent | EReferralDocumentReference | EReferralFamilyMemberHistory | EReferralMedicationStatement | EReferralProcedure | EReferralQuestionnaireResponse | Resource) | ||
| note | |||
| author[x] | |||
| authorReference | Reference(EReferralOrganization | EReferralPatient | EReferralPractitioner) | ||
| authorString | string | ||
| text |
Hybrid View
| EReferralServiceRequest (ServiceRequest) | http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest | ||
| meta | S | 1.. | |
| profile | S | 1.. | |
| PatientPresentLocation | ..1 | ||
| value[x] | S | ||
| reference | S | ||
| identifier | S | ||
| DARC | ..1 | ||
| DART | ..1 | ||
| RoutingOptions | |||
| value[x] | S | ||
| coding | S | Binding | |
| CopiedParticipants | |||
| serviceProviderPreference | S | Extension(Complex) | |
| identifier | |||
| use | S | ||
| type | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| basedOn | Reference(EReferralServiceRequest) | ||
| replaces | Reference(EReferralServiceRequest) | ||
| requisition | |||
| priority | S | ||
| code | Binding | ||
| coding | |||
| system | S | 1.. | Fixed Value |
| code | S | 1.. | Binding |
| display | S | 1.. | |
| orderDetail | |||
| coding | |||
| system | 1.. | ||
| code | 1.. | ||
| display | 1.. | ||
| subject | Reference(EReferralPatient) | ||
| authoredOn | |||
| requester | Reference(EReferralPatient | EReferralPractitionerRole) | ||
| serviceRequestDelegate | S | Extension(Complex) | |
| performer | Reference(EReferralHealthcareService | EReferralPractitionerRole) | ||
| performerIdentifier | S | ..1 | Extension(Identifier) |
| reasonCode | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| text | S | ||
| supportingInfo | Reference(EReferralAllergyIntolerance | EReferralCommunication | EReferralCondition | EReferralConsent | EReferralDocumentReference | EReferralFamilyMemberHistory | EReferralMedicationStatement | EReferralProcedure | EReferralQuestionnaireResponse | Resource) | ||
| note | |||
| author[x] | |||
| authorReference | Reference(EReferralOrganization | EReferralPatient | EReferralPractitioner) | ||
| authorString | string | ||
| text |
Snapshot View
| EReferralServiceRequest (ServiceRequest) | http://fhir.infoway-inforoute.ca/io/CA-eReC/StructureDefinition/CA-eReC-ServiceRequest | ||
| meta | S | 1.. | |
| profile | S | 1.. | |
| PatientPresentLocation | ..1 | ||
| value[x] | S | ||
| reference | S | ||
| identifier | S | ||
| DARC | ..1 | ||
| DART | ..1 | ||
| RoutingOptions | |||
| value[x] | S | ||
| coding | S | Binding | |
| CopiedParticipants | |||
| serviceProviderPreference | S | Extension(Complex) | |
| identifier | |||
| use | S | ||
| type | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| basedOn | Reference(EReferralServiceRequest) | ||
| replaces | Reference(EReferralServiceRequest) | ||
| requisition | |||
| priority | S | ||
| code | Binding | ||
| coding | |||
| system | S | 1.. | Fixed Value |
| code | S | 1.. | Binding |
| display | S | 1.. | |
| orderDetail | |||
| coding | |||
| system | 1.. | ||
| code | 1.. | ||
| display | 1.. | ||
| subject | Reference(EReferralPatient) | ||
| authoredOn | |||
| requester | Reference(EReferralPatient | EReferralPractitionerRole) | ||
| serviceRequestDelegate | S | Extension(Complex) | |
| performer | Reference(EReferralHealthcareService | EReferralPractitionerRole) | ||
| performerIdentifier | S | ..1 | Extension(Identifier) |
| reasonCode | |||
| coding | |||
| system | S | 1.. | |
| code | S | 1.. | |
| display | S | 1.. | |
| text | S | ||
| supportingInfo | Reference(EReferralAllergyIntolerance | EReferralCommunication | EReferralCondition | EReferralConsent | EReferralDocumentReference | EReferralFamilyMemberHistory | EReferralMedicationStatement | EReferralProcedure | EReferralQuestionnaireResponse | Resource) | ||
| note | |||
| author[x] | |||
| authorReference | Reference(EReferralOrganization | EReferralPatient | EReferralPractitioner) | ||
| authorString | string | ||
| text |
Table View
| ServiceRequest | .. | |
| ServiceRequest.meta | 1.. | |
| ServiceRequest.meta.profile | 1.. | |
| ServiceRequest.extension:PatientPresentLocation | ..1 | |
| ServiceRequest.extension:PatientPresentLocation.value[x] | .. | |
| ServiceRequest.extension:PatientPresentLocation.value[x].reference | .. | |
| ServiceRequest.extension:PatientPresentLocation.value[x].identifier | .. | |
| ServiceRequest.extension:DARC | ..1 | |
| ServiceRequest.extension:DART | ..1 | |
| ServiceRequest.extension:RoutingOptions | .. | |
| ServiceRequest.extension:RoutingOptions.value[x] | .. | |
| ServiceRequest.extension:RoutingOptions.value[x].coding | .. | |
| ServiceRequest.extension:CopiedParticipants | .. | |
| ServiceRequest.extension:serviceProviderPreference | Extension | .. |
| ServiceRequest.identifier | .. | |
| ServiceRequest.identifier.use | .. | |
| ServiceRequest.identifier.type | .. | |
| ServiceRequest.identifier.type.coding | .. | |
| ServiceRequest.identifier.type.coding.system | 1.. | |
| ServiceRequest.identifier.type.coding.code | 1.. | |
| ServiceRequest.identifier.type.coding.display | 1.. | |
| ServiceRequest.basedOn | Reference(EReferralServiceRequest) | .. |
| ServiceRequest.replaces | Reference(EReferralServiceRequest) | .. |
| ServiceRequest.requisition | .. | |
| ServiceRequest.priority | .. | |
| ServiceRequest.code | .. | |
| ServiceRequest.code.coding | .. | |
| ServiceRequest.code.coding.system | 1.. | |
| ServiceRequest.code.coding.code | 1.. | |
| ServiceRequest.code.coding.display | 1.. | |
| ServiceRequest.orderDetail | .. | |
| ServiceRequest.orderDetail.coding | .. | |
| ServiceRequest.orderDetail.coding.system | 1.. | |
| ServiceRequest.orderDetail.coding.code | 1.. | |
| ServiceRequest.orderDetail.coding.display | 1.. | |
| ServiceRequest.subject | Reference(EReferralPatient) | .. |
| ServiceRequest.authoredOn | .. | |
| ServiceRequest.requester | Reference(EReferralPatient | EReferralPractitionerRole) | .. |
| ServiceRequest.requester.extension:serviceRequestDelegate | Extension | .. |
| ServiceRequest.performer | Reference(EReferralHealthcareService | EReferralPractitionerRole) | .. |
| ServiceRequest.performer.extension:performerIdentifier | Extension | ..1 |
| ServiceRequest.reasonCode | .. | |
| ServiceRequest.reasonCode.coding | .. | |
| ServiceRequest.reasonCode.coding.system | 1.. | |
| ServiceRequest.reasonCode.coding.code | 1.. | |
| ServiceRequest.reasonCode.coding.display | 1.. | |
| ServiceRequest.reasonCode.text | .. | |
| ServiceRequest.supportingInfo | Reference(EReferralAllergyIntolerance | EReferralCommunication | EReferralCondition | EReferralConsent | EReferralDocumentReference | EReferralFamilyMemberHistory | EReferralMedicationStatement | EReferralProcedure | EReferralQuestionnaireResponse | Resource) | .. |
| ServiceRequest.note | .. | |
| ServiceRequest.note.author[x] | Reference(EReferralOrganization | EReferralPatient | EReferralPractitioner) | string | .. |
| ServiceRequest.note.text | .. |
JSON View
Usage
The ServiceRequest resource is the primary resource used to represent a referral request in this IG. References to other resources are used to convey the details of the request including the Patient (ServiceRequest.subject), Referrer (ServiceRequest.requester) and supporting information (ServiceRequest.supportingInfo).
Notes
.id
- used to uniquely identify the resource
- if a persistent identity for the resource is not available to use when constructing a message Bundle for transmission via Direct Messaging, a UUID SHOULD be used in this element (with a corresponding value in
Bundle.entry.fullUrl)
.meta.profile
- used to declare conformance to this profile
- populate with a fixed value:
http://ehealthontario.ca/fhir/StructureDefinition/ca-on-eReferral-profile-ServiceRequest|1.1.0
.extension:PatientPresentLocation
- used to communicate the present location of the patient if it is different than the patient's home address
- see business rules for more information
.extension:DARC
- used to communicate dates affecting reason to consult
.extension:DART
- used to communicate dates affecting reason to treat
.extension:RoutingOptions
- used to communicate referral source type information to support referral processes with automated referral processing rules
- see business rules for more information
.extension:CopiedParticipant
- used to communicate updates to the ServiceRequest in cases of forwarding referrals. The original ServiceRequest is sent to central intake and is copied to another ProviderRole. The forwarded ServiceRequest is the same as the original with an added ProviderRole
.extension:serviceProviderPreference
- used to indicate preferences related to provider and service location -'.extension:serviceProviderPreference.valueString' is only to be used when the RMS Source is not integrated with the Provincial Healthcare Service Directory
.extension:serviceRequestDelegate
- used to indicate a person or provider identified as a delegate for a service request
.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 (e.g., Ontario HCN, Band #, CHRIS #, Caredove #, Hubly ID, etc...).
- when a resource is send 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
- for Health Information System assigned and similar Identifier values record the organization that issued the identifier in identifier.assigner.display.
- Systems that create ServiceRequests to support Routing, Splitting, or Chaining workflows SHALL populate the official identifier as follows:
- Routing: the official .identifier SHALL be the same for both the parent and child ServiceRequests
- Splitting: each child ServiceRequest SHALL have an official .identifier assigned that is unique from the parent
- Chaining: each child ServiceRequest SHALL have an official .identifier assigned that is unique from the parent
.identifier.use
- the RMS Source that initiates the ServiceRequest MUST set .identifier.use to 'official'
.basedOn
- used when the recipient of a ServiceRequest, creates ServiceRequests (i.e., chaining when one new request is created, or splitting when two or more requests are created) for other service providers (e.g.: a coordinator in a central intake or assessment centre may create requests for other service providers
basedOnthe ServiceRequest being peformed) basedOnSHALL NOT be populated when a new ServiceRequest is created to initiate a referral- when a service provider performing a ServiceRequest creates another,
basedOnSHALL be populated on the new ServiceRequest with a reference to the ServiceRequest being performed - if the ServiceRequest is being transmitted via messaging, the referenced ServiceRequest resource SHALL be included in the message as a
Bundle.entry
.replaces
- used when a ServiceRequest is passed to a new handler or destination as the same ServiceRequest and
replacesthe ServiceRequest being performed
.requisition
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.focusSHALL have the same identifier inServiceRequest.requisition - the identifier used in
ServiceRequest.requisitionSHALL also be used inMessageHeader.extension:ReferralIdentifier - When splitting a received parent ServiceRequest to create many child ServiceRequests, .requisition SHALL be copied from the official .identifier from the parent ServiceRequest
- multiple ServiceRequests SHALL be referenced in
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
basedOnrelationship (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
- see Direct Messaging for a discussion of ServiceRequest.status and the state machine
.intent
- populate with the fixed value: "proposal"
.category
- see note on terminology binding in profile
.code
- Specifies the specific type of service to be performed (e.g., Urinalysis, Renal/Bladder Ultrasound, etc.)
- Expected to be populated in the majority of instances
- eREFERRAL USAGE:
- the meaning of this field is to be used in conjunction with
ServiceRequest.performerwhich points to a HealthCareservice, .codefurther specifies the service, for example code could be a specific procedure under the specificed HealthcareService (e.g., HealthcareService = Orthopaedic Surgeon, code=Knee Surgery).- Many laboratory and radiology procedure codes embed the specimen/organ system in the test order name, for example, serum or serum/plasma glucose, or a chest x-ray. The specimen might not be recorded separately from the test code.
- the meaning of this field is to be used in conjunction with
.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, the referenced Patient resource SHALL be included in the message as a
Bundle.entry
.authoredOn
- FOR EREFERRAL AND ECONSULT USAGE:
.authoredOnis 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
- recommentation: to track the time that a ServiceRequest message was submitted to the performer,
Task.authoredOnwill contain the time the ServiceRequest was received and the Task (perform-request) was created
.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
- For eConsult the PractionerRole SHALL include the organization of the requesting provider (
PractionerRole.Organization), the CPSO/CNOnumber AND the OHIP billing number (PractitionerRole.identifier), and the practitioner’s legal name (PractitionerRole.Practitioner.Display) - if the ServiceRequest is being transmitted via messaging, the referenced resource SHALL be included in the message as a
Bundle.entry
.performer
- identifies the requested service or service provider
- populate with a reference to a HealthcareService for services, or a PractitionerRole for clinicians
- IMPORTANT if the ServiceRequest is being transmitted via messaging, this element SHALL always reference a resource known to the recipient of the message, therefore this resource is not expected to be included as a
Bundle.entrywhen transmitting a ServiceRequest to a service provider - for eConsult
.performer.PractitionerRole.Practitioner.identifierMUST be an ID retrieved from the Ontario Provincial Health and Service Directory (PHSD) - .extension.request-performerOrder - Performer recommendations can be communicated by setting the value of the request-PerformerOrder extension to ‘1’. The URL for this extension can be found at http://hl7.org/fhir/StructureDefinition/request-performerOrder.
- see business rules for more information
.reasonCode
- FOR ECONSULT USAGE:
- .text - will contain a description of the eConsult "question"
.supportingInfo
- used to associate supporting information in the patient's record with a ServiceRequest
- MAY be populated with references to AllergyIntolerance,
Condition,
Consent,
QuestionnaireResponse, FamilyMemberHistory, MedicationStatement, Procedure, or other FHIR resources in the future to associate structured information with a ServiceRequest
- AllergyIntolerance, Condition, Family History, Medication, and Procedure information SHALL be communicated with discrete FHIR resources
- MAY be populated with references to DocumentReference to associate binary attachments with a ServiceRequest
- at least one Condition resource SHALL be present
- if the ServiceRequest is being transmitted via messaging, any resource referenced here SHALL be included in messages from the requester to the performer as a
Bundle.entry - Attachments in a parent, unsplit referral should be associated (e.g., attachment download URLs and other attachment data) with all of the child, split referrals.
.basedOnrelationship to the parent ServiceRequest can provide linkages to the parent.supportingInfo
.note
used to communicate information that cannot be referenced in
supportingInfowith a ServiceRequestMAY 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.authorandnote.timeare not populated, these SHOULD be assumed to be therequesterandauthoredOnrespectively (this is expected to be the normal use case)an Organization MAY be referenced as the
note.authorwhen there's no need for specific attribution as to who made the comment.FOR EREFERRAL USAGE:
noteis 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).
Search Parameters
| Name | Parameter | Description | Sample Expression | |
|---|---|---|---|---|
| authored | ServiceRequest.authoredOn | Date request signed | GET [BASE]/ServiceRequest?authored=2022-07-01 | |
| status | ServiceRequest.status | Status of the ServiceRequest | GET [BASE]/ServiceRequest?status=completed | |
| category | ServiceRequest.category | Classification of service | GET [BASE]/ServiceRequest?category=424008009 | |
| code | ServiceRequest.code | What is being requested/ordered | GET [BASE]/ServiceRequest?code=105385000 | |
| identifier | ServiceRequest.identifier | Identifiers assigned to this order | GET [BASE]/ServiceRequest?identifier=123 | |
| patient | ServiceRequest.subject.where(resolve() is Patient) | Search by subject - a patient | GET [BASE]/ServiceRequest?patient=3640897 | |
| performer | ServiceRequest.performer | Performer role | GET [BASE]/ServiceRequest?performer=6478147 | |
| requester | ServiceRequest.requester | Who/what is requesting service | GET [BASE]/ServiceRequest?requester=6840735 | |
| _id | The logical ID of the resource. | GET [BASE]/ServiceRequest?_id=123 | ||
| _lastUpdated | This parameter can be used to select resources based on the last time they were changed. | GET [BASE]/ServiceRequest?_lastUpdated=gt2020-01-01&_lastUpdated=lt2021-03-31 | ||
| _include | This parameter retrieves the primary resource and resources that are referenced by the primary resource. For HealthcareService, the _include parameter is used to return addtional resources such as Organization. | GET [BASE]/ServiceRequest?id=23414_include=* GET [BASE]/ServiceRequest?patient=3640897&_include=ServiceRequest:patient&_include=ServiceRequest:performer&_include=ServiceRequest:requester |
||
| _revinclude | This parameter retrieves resources that reference the primary resource. | GET [base]/ServiceRequest?_revinclude=ServiceRequest:identifier GET [base]/ServiceRequest?_revinclude=* |