Da Vinci - Coverage Requirements Discovery
1.0.0 - STU 1

This page is part of the Da Vinci Coverage Requirements Discovery (CRD) FHIR IG (v1.0.0: STU 1) based on FHIR R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Resource Profile: ServiceRequest

Defining URL:http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest
Version:1.0.0
Name:ServiceRequest
Status:Draft as of 2018-07-25
Definition:

This profile specifies constraints on the ServiceRequest resource to support coverage requirements discovery.

Publisher:HL7 International - Financial Management Work Group
Source Resource:XML / JSON / Turtle

The official URL for this profile is:

http://hl7.org/fhir/us/davinci-crd/StructureDefinition/profile-servicerequest

Usage


CRD Clients SHALL use this profile to resolve references to ServiceRequest resources passed to CRD Services (e.g. selections context references) and to populate draftOrders context objects when invoking the when invoking the following CDS Hooks:

Information provided in Must Support elements will commonly be required for CRD Services to perform coverage requirements discovery.

The insurance element allows relevant coverage information to be conveyed with selections and/or draft orders. A search parameter is defined in this guide to enable the prefetch of coverage information when invoking hooks.

Formal Views of Profile Content

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

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest 0..*ServiceRequestA request for a service to be performed
... identifier S0..*IdentifierIdentifiers assigned to this order
... basedOn S0..*Reference(ServiceRequest | MedicationRequest)What request fulfills
... status S1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Fixed Value: draft
... code S1..1CodeableConceptCodes to identify requested services. (CPT, SNOMED CT or LOINC)
Binding: CRD Service Request Codes (extensible): Codes describing the type of Service

... quantity[x] S0..1Quantity, Ratio, RangeService amount
... subject S1..1Reference(Patient)Individual or Entity the service is ordered for
... encounter 0..1Reference(Encounter)Encounter in which the request was created
... occurrence[x] S0..1dateTime, Period, TimingWhen service should occur
... authoredOn S1..1dateTimeDate request signed
... requester S1..1Reference(Practitioner | US Core PractitionerRole Profile)Who/what is requesting service
... performer S0..*Reference(Practitioner | US Core PractitionerRole Profile)Requested performer
... locationReference S1..1Reference(Location)Requested location
... reasonCode S0..*CodeableConceptExplanation/Justification for procedure or service
... reasonReference S0..*Reference(US Core Condition Profile | US Core Laboratory Result Observation Profile)Explanation/Justification for service or service
... insurance S0..*Reference(Coverage)Associated insurance coverage

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest I0..*ServiceRequestA request for a service to be performed
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ0..*IdentifierIdentifiers assigned to this order
... instantiatesCanonical Σ0..*canonical(ActivityDefinition | PlanDefinition)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... basedOn SΣ0..*Reference(ServiceRequest | MedicationRequest)What request fulfills
... replaces Σ0..*Reference(ServiceRequest)What request replaces
... requisition Σ0..1IdentifierComposite Request ID
... status ?!SΣ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.


Fixed Value: draft
... intent ?!Σ1..1codeproposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.

... category Σ0..*CodeableConceptClassification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.


... priority Σ0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.

... code SΣ1..1CodeableConceptCodes to identify requested services. (CPT, SNOMED CT or LOINC)
Binding: CRD Service Request Codes (extensible): Codes describing the type of Service

... orderDetail ΣI0..*CodeableConceptAdditional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.


... quantity[x] SΣ0..1Service amount
.... quantityQuantityQuantity
.... quantityRatioRatio
.... quantityRangeRange
... subject SΣ1..1Reference(Patient)Individual or Entity the service is ordered for
... encounter Σ0..1Reference(Encounter)Encounter in which the request was created
... occurrence[x] SΣ0..1When service should occur
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... asNeeded[x] Σ0..1Preconditions 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.

.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
... authoredOn SΣ1..1dateTimeDate request signed
... requester SΣ1..1Reference(Practitioner | US Core PractitionerRole Profile)Who/what is requesting service
... performerType Σ0..1CodeableConceptPerformer role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.

... performer SΣ0..*Reference(Practitioner | US Core PractitionerRole Profile)Requested performer
... locationCode Σ0..*CodeableConceptRequested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.


... locationReference SΣ1..1Reference(Location)Requested location
... reasonCode SΣ0..*CodeableConceptExplanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.


... reasonReference SΣ0..*Reference(US Core Condition Profile | US Core Laboratory Result Observation Profile)Explanation/Justification for service or service
... insurance S0..*Reference(Coverage)Associated insurance coverage
... supportingInfo 0..*Reference(Resource)Additional clinical information
... specimen Σ0..*Reference(Specimen)Procedure Samples
... bodySite Σ0..*CodeableConceptLocation on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.


... note 0..*AnnotationComments
... patientInstruction Σ0..1stringPatient or consumer-oriented instructions
... relevantHistory 0..*Reference(Provenance)Request provenance

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest I0..*ServiceRequestA request for a service to be performed
... identifier Σ0..*IdentifierIdentifiers assigned to this order
... basedOn Σ0..*Reference(ServiceRequest | MedicationRequest)What request fulfills
... status ?!Σ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.


Fixed Value: draft
... quantity[x] Σ0..1Service amount
.... quantityQuantityQuantity
.... quantityRatioRatio
.... quantityRangeRange
... subject Σ1..1Reference(Patient)Individual or Entity the service is ordered for
... occurrence[x] Σ0..1When service should occur
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... authoredOn Σ1..1dateTimeDate request signed
... requester Σ1..1Reference(Practitioner | US Core PractitionerRole Profile)Who/what is requesting service
... performer Σ0..*Reference(Practitioner | US Core PractitionerRole Profile)Requested performer
... locationReference Σ1..1Reference(Location)Requested location
... reasonCode Σ0..*CodeableConceptExplanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.


... reasonReference Σ0..*Reference(US Core Condition Profile | US Core Laboratory Result Observation Profile)Explanation/Justification for service or service
... insurance 0..*Reference(Coverage)Associated insurance coverage

doco Documentation for this format

Differential View

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest 0..*ServiceRequestA request for a service to be performed
... identifier S0..*IdentifierIdentifiers assigned to this order
... basedOn S0..*Reference(ServiceRequest | MedicationRequest)What request fulfills
... status S1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Fixed Value: draft
... code S1..1CodeableConceptCodes to identify requested services. (CPT, SNOMED CT or LOINC)
Binding: CRD Service Request Codes (extensible): Codes describing the type of Service

... quantity[x] S0..1Quantity, Ratio, RangeService amount
... subject S1..1Reference(Patient)Individual or Entity the service is ordered for
... encounter 0..1Reference(Encounter)Encounter in which the request was created
... occurrence[x] S0..1dateTime, Period, TimingWhen service should occur
... authoredOn S1..1dateTimeDate request signed
... requester S1..1Reference(Practitioner | US Core PractitionerRole Profile)Who/what is requesting service
... performer S0..*Reference(Practitioner | US Core PractitionerRole Profile)Requested performer
... locationReference S1..1Reference(Location)Requested location
... reasonCode S0..*CodeableConceptExplanation/Justification for procedure or service
... reasonReference S0..*Reference(US Core Condition Profile | US Core Laboratory Result Observation Profile)Explanation/Justification for service or service
... insurance S0..*Reference(Coverage)Associated insurance coverage

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. ServiceRequest I0..*ServiceRequestA request for a service to be performed
... id Σ0..1stringLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages: A human language.

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier SΣ0..*IdentifierIdentifiers assigned to this order
... instantiatesCanonical Σ0..*canonical(ActivityDefinition | PlanDefinition)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... basedOn SΣ0..*Reference(ServiceRequest | MedicationRequest)What request fulfills
... replaces Σ0..*Reference(ServiceRequest)What request replaces
... requisition Σ0..1IdentifierComposite Request ID
... status ?!SΣ1..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.


Fixed Value: draft
... intent ?!Σ1..1codeproposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required): The kind of service request.

... category Σ0..*CodeableConceptClassification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.


... priority Σ0..1coderoutine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.

... code SΣ1..1CodeableConceptCodes to identify requested services. (CPT, SNOMED CT or LOINC)
Binding: CRD Service Request Codes (extensible): Codes describing the type of Service

... orderDetail ΣI0..*CodeableConceptAdditional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.


... quantity[x] SΣ0..1Service amount
.... quantityQuantityQuantity
.... quantityRatioRatio
.... quantityRangeRange
... subject SΣ1..1Reference(Patient)Individual or Entity the service is ordered for
... encounter Σ0..1Reference(Encounter)Encounter in which the request was created
... occurrence[x] SΣ0..1When service should occur
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... asNeeded[x] Σ0..1Preconditions 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.

.... asNeededBooleanboolean
.... asNeededCodeableConceptCodeableConcept
... authoredOn SΣ1..1dateTimeDate request signed
... requester SΣ1..1Reference(Practitioner | US Core PractitionerRole Profile)Who/what is requesting service
... performerType Σ0..1CodeableConceptPerformer role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.

... performer SΣ0..*Reference(Practitioner | US Core PractitionerRole Profile)Requested performer
... locationCode Σ0..*CodeableConceptRequested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.


... locationReference SΣ1..1Reference(Location)Requested location
... reasonCode SΣ0..*CodeableConceptExplanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.


... reasonReference SΣ0..*Reference(US Core Condition Profile | US Core Laboratory Result Observation Profile)Explanation/Justification for service or service
... insurance S0..*Reference(Coverage)Associated insurance coverage
... supportingInfo 0..*Reference(Resource)Additional clinical information
... specimen Σ0..*Reference(Specimen)Procedure Samples
... bodySite Σ0..*CodeableConceptLocation on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.


... note 0..*AnnotationComments
... patientInstruction Σ0..1stringPatient or consumer-oriented instructions
... relevantHistory 0..*Reference(Provenance)Request provenance

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

PathConformanceValueSet / Code
ServiceRequest.languagepreferredCommonLanguages
Max Binding: AllLanguages
ServiceRequest.statusrequiredFixed Value: draft
ServiceRequest.intentrequiredRequestIntent
ServiceRequest.categoryexampleServiceRequestCategoryCodes
ServiceRequest.priorityrequiredRequestPriority
ServiceRequest.codeextensibleCRDServiceRequestCodes
ServiceRequest.orderDetailexampleServiceRequestOrderDetailsCodes
ServiceRequest.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
ServiceRequest.performerTypeexampleParticipantRoles
ServiceRequest.locationCodeexampleServiceDeliveryLocationRoleType
ServiceRequest.reasonCodeexampleProcedureReasonCodes
ServiceRequest.bodySiteexampleSNOMEDCTBodyStructures

Constraints

IdPathDetailsRequirements
dom-2ServiceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3ServiceRequestIf 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-4ServiceRequestIf 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-5ServiceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6ServiceRequestA resource should have narrative for robust management
: text.`div`.exists()
prr-1ServiceRequestorderDetail SHALL only be present if code is present
: orderDetail.empty() or code.exists()
ele-1ServiceRequest.metaAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.implicitRulesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.languageAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.textAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.extensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1ServiceRequest.extensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1ServiceRequest.modifierExtensionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1ServiceRequest.modifierExtensionMust have either extensions or value[x], not both
: extension.exists() != value.exists()
ele-1ServiceRequest.identifierAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.instantiatesCanonicalAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.instantiatesUriAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.basedOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.replacesAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.requisitionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.statusAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.intentAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.categoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.priorityAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.codeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.orderDetailAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.quantity[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.subjectAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.encounterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.occurrence[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.asNeeded[x]All FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.authoredOnAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.requesterAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.performerTypeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.performerAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.locationCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.locationReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.reasonCodeAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.reasonReferenceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.insuranceAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.supportingInfoAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.specimenAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.bodySiteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.noteAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.patientInstructionAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ele-1ServiceRequest.relevantHistoryAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())