Pharmacist Services and Summaries - FHIR (PhCP)
1.0.0 - STU Release 1.0.0 for FHIR R4

Publication Build: This will be filled in by the publication tooling

## Resource Profile: PhCP-ServiceRequest

Defining URL: | http://hl7.org/fhir/us/phcp/StructureDefinition/PhCP-ServiceRequest
Version: | 1.0.0
Name: | PhCPServiceRequest
Title: | PhCP ServiceRequest
Status: | Draft as of 2017-07-21T18:17:28.728Z
Definition: | This profile represents any of a number of planned interventions for the patient. For example, an activity such as "elevate head of bed" combined with "provide humidified O2 per nasal cannula" may be the interventions performed for a health concern of "respiratory insufficiency" to achieve a goal of "pulse oximetry greater than 92%". These intervention activities may be newly described or derived from a variety of sources within an EHR. Interventions are actions taken to increase the likelihood of achieving the patient's or providers' goals.
Publisher: | HL7 Structured Documents Work Group
Source Resource: | XML / JSON / Turtle

The official URL for this profile is:

    http://hl7.org/fhir/us/phcp/StructureDefinition/PhCP-ServiceRequest

### Formal Views of Profile Content

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

- Text Summary
- Differential Table
- Snapshot Table
- Snapshot Table (Must Support)
- All

This structure is derived from ServiceRequest

Summary

Must-Support: 3 elements

Structures

This structure refers to these other structures:

- http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole

This structure is derived from ServiceRequest

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
ServiceRequest |  | 0..* | ServiceRequest | A request for a service to be performed
subject | S | 1..1 | Reference(US Core Patient Profile | Group) | Individual or Entity the service is ordered for
occurrence[x] | S | 0..1 | dateTime, Period, Timing | When service should occur
requester | S | 0..1 | Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Patient Profile | RelatedPerson | Device) | Who/what is requesting service
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
ServiceRequest | I | 0..* | ServiceRequest | A request for a service to be performed
id | Σ | 0..1 | string | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language.
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Identifiers assigned to this order
instantiatesCanonical | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest | MedicationRequest) | What request fulfills
replaces | Σ | 0..* | Reference(ServiceRequest) | What request replaces
requisition | Σ | 0..1 | Identifier | Composite Request ID
status | ?!Σ | 1..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required): The status of a service order.
intent | ?!Σ | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): The kind of service request.
category | Σ | 0..* | CodeableConcept | Classification of service Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
doNotPerform | ?!Σ | 0..1 | boolean | True if service/procedure should not be performed
code | Σ | 0..1 | CodeableConcept | ​What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is (preferred)[http://build.fhir.org/terminologies.html#preferred] and a valueset using LOINC Order codes is available here.
orderDetail | Σ I | 0..* | CodeableConcept | Additional order information Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
quantity[x] | Σ | 0..1 |  | Service amount
quantityQuantity |  |  | Quantity |
quantityRatio |  |  | Ratio |
quantityRange |  |  | Range |
subject | S Σ | 1..1 | Reference(US Core Patient Profile | Group) | Individual or Entity the service is ordered for
encounter | Σ | 0..1 | Reference(Encounter) | Encounter in which the request was created
occurrence[x] | S Σ | 0..1 |  | When service should occur
occurrenceDateTime |  |  | dateTime |
occurrencePeriod |  |  | Period |
occurrenceTiming |  |  | Timing |
asNeeded[x] | Σ | 0..1 |  | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
authoredOn | Σ | 0..1 | dateTime | Date request signed
requester | S Σ | 0..1 | Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Patient Profile | RelatedPerson | Device) | Who/what is requesting service
performerType | Σ | 0..1 | CodeableConcept | Performer role Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) | Requested performer
locationCode | Σ | 0..* | CodeableConcept | Requested location Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
locationReference | Σ | 0..* | Reference(Location) | Requested location
reasonCode | Σ | 0..* | CodeableConcept | Explanation/Justification for procedure or service Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Explanation/Justification for service or service
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
supportingInfo |  | 0..* | Reference(Resource) | Additional clinical information
specimen | Σ | 0..* | Reference(Specimen) | Procedure Samples
bodySite | Σ | 0..* | CodeableConcept | Location on Body Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
note |  | 0..* | Annotation | Comments
patientInstruction | Σ | 0..1 | string | Patient or consumer-oriented instructions
relevantHistory |  | 0..* | Reference(Provenance) | Request provenance
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
ServiceRequest | I | 0..* | ServiceRequest | A request for a service to be performed
subject | Σ | 1..1 | Reference(US Core Patient Profile | Group) | Individual or Entity the service is ordered for
occurrence[x] | Σ | 0..1 |  | When service should occur
occurrenceDateTime |  |  | dateTime |
occurrencePeriod |  |  | Period |
occurrenceTiming |  |  | Timing |
requester | Σ | 0..1 | Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Patient Profile | RelatedPerson | Device) | Who/what is requesting service
Documentation for this format

This structure is derived from ServiceRequest

Summary

Must-Support: 3 elements

Structures

This structure refers to these other structures:

- http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
- http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitionerrole

Differential View

This structure is derived from ServiceRequest

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
ServiceRequest |  | 0..* | ServiceRequest | A request for a service to be performed
subject | S | 1..1 | Reference(US Core Patient Profile | Group) | Individual or Entity the service is ordered for
occurrence[x] | S | 0..1 | dateTime, Period, Timing | When service should occur
requester | S | 0..1 | Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Patient Profile | RelatedPerson | Device) | Who/what is requesting service
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
ServiceRequest | I | 0..* | ServiceRequest | A request for a service to be performed
id | Σ | 0..1 | string | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages: A human language.
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Identifiers assigned to this order
instantiatesCanonical | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest | MedicationRequest) | What request fulfills
replaces | Σ | 0..* | Reference(ServiceRequest) | What request replaces
requisition | Σ | 0..1 | Identifier | Composite Request ID
status | ?!Σ | 1..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required): The status of a service order.
intent | ?!Σ | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): The kind of service request.
category | Σ | 0..* | CodeableConcept | Classification of service Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
doNotPerform | ?!Σ | 0..1 | boolean | True if service/procedure should not be performed
code | Σ | 0..1 | CodeableConcept | ​What is being requested/ordered Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is (preferred)[http://build.fhir.org/terminologies.html#preferred] and a valueset using LOINC Order codes is available here.
orderDetail | Σ I | 0..* | CodeableConcept | Additional order information Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
quantity[x] | Σ | 0..1 |  | Service amount
quantityQuantity |  |  | Quantity |
quantityRatio |  |  | Ratio |
quantityRange |  |  | Range |
subject | S Σ | 1..1 | Reference(US Core Patient Profile | Group) | Individual or Entity the service is ordered for
encounter | Σ | 0..1 | Reference(Encounter) | Encounter in which the request was created
occurrence[x] | S Σ | 0..1 |  | When service should occur
occurrenceDateTime |  |  | dateTime |
occurrencePeriod |  |  | Period |
occurrenceTiming |  |  | Timing |
asNeeded[x] | Σ | 0..1 |  | Preconditions for service Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
asNeededBoolean |  |  | boolean |
asNeededCodeableConcept |  |  | CodeableConcept |
authoredOn | Σ | 0..1 | dateTime | Date request signed
requester | S Σ | 0..1 | Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | US Core Patient Profile | RelatedPerson | Device) | Who/what is requesting service
performerType | Σ | 0..1 | CodeableConcept | Performer role Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam | HealthcareService | Patient | Device | RelatedPerson) | Requested performer
locationCode | Σ | 0..* | CodeableConcept | Requested location Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
locationReference | Σ | 0..* | Reference(Location) | Requested location
reasonCode | Σ | 0..* | CodeableConcept | Explanation/Justification for procedure or service Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
reasonReference | Σ | 0..* | Reference(Condition | Observation | DiagnosticReport | DocumentReference) | Explanation/Justification for service or service
insurance |  | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage
supportingInfo |  | 0..* | Reference(Resource) | Additional clinical information
specimen | Σ | 0..* | Reference(Specimen) | Procedure Samples
bodySite | Σ | 0..* | CodeableConcept | Location on Body Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
note |  | 0..* | Annotation | Comments
patientInstruction | Σ | 0..1 | string | Patient or consumer-oriented instructions
relevantHistory |  | 0..* | Reference(Provenance) | Request provenance
Documentation for this format

Other representations of profile: Schematron

#### Terminology Bindings

Path | Conformance | ValueSet
ServiceRequest.language | preferred | CommonLanguages Max Binding: AllLanguages
ServiceRequest.status | required | RequestStatus
ServiceRequest.intent | required | RequestIntent
ServiceRequest.category | example | ServiceRequestCategoryCodes
ServiceRequest.priority | required | RequestPriority
ServiceRequest.code | example | ProcedureCodes(SNOMEDCT)
ServiceRequest.orderDetail | example | ServiceRequestOrderDetailsCodes
ServiceRequest.asNeeded[x] | example | SNOMEDCTMedicationAsNeededReasonCodes
ServiceRequest.performerType | example | ParticipantRoles
ServiceRequest.locationCode | example | ServiceDeliveryLocationRoleType
ServiceRequest.reasonCode | example | ProcedureReasonCodes
ServiceRequest.bodySite | example | SNOMEDCTBodyStructures

#### Constraints

Id | Path | Details | Requirements
dom-2 | ServiceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | ServiceRequest | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | ServiceRequest | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | ServiceRequest | A resource should have narrative for robust management : text.`div`.exists() |
prr-1 | ServiceRequest | orderDetail SHALL only be present if code is present : orderDetail.empty() or code.exists() |
ele-1 | ServiceRequest.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | ServiceRequest.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | ServiceRequest.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | ServiceRequest.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | ServiceRequest.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.instantiatesCanonical | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.instantiatesUri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.replaces | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.requisition | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.intent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.priority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.doNotPerform | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.orderDetail | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.quantity[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.occurrence[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.asNeeded[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.authoredOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.requester | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.performerType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.locationCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.locationReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.insurance | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.supportingInfo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.specimen | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.bodySite | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.patientInstruction | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | ServiceRequest.relevantHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |