QI-Core Implementation Guide
5.0.0 - STU5 United States of America flag

This page is part of the Quality Improvement Core Framework (v5.0.0: STU5 (v5.0.0)) based on FHIR R4. The current version which supercedes this version is 4.1.1. For a full list of available versions, see the Directory of published versions

Resource Profile: QICore DeviceRequest

Official URL: http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest Version: 5.0.0
Active as of 2019-07-11 Computable Name: QICoreDeviceRequest

Profile of DeviceRequest for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.

Usage

The FHIR R4 and the QI-Core DeviceRequest profile describes the request to use of a device by a patient. The device may be any pertinent device specified in the Device resource. Examples of devices that may be requested include a wheelchair, hearing aids, or an insulin pump. The request may lead to the dispensing of the device to the patient or for use by the patient. Orders or recommendations for use of a device for a patient use the ServiceRequest resource.

To create an expression specifically requesting information that a DeviceRequest intentionally did not occur for a medical, patient or system reason, use the profile QICore-Devicenotrequested.

The following example illustrates the use of DeviceRequest:

define "Device Indicating Frailty":
  [DeviceRequest: "Frailty Device"] FrailtyDeviceOrder
    where FrailtyDeviceOrder.status in { 'active', 'on-hold', 'completed' }
      and FrailtyDeviceOrder.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }

See the patterns page for implementation and usage patterns.

Examples

General DeviceRequest Example

Usage:

Formal Views of Profile Content

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

This structure is derived from DeviceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... identifier S0..*IdentifierExternal Request identifier
... status S0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
... code[x] S1..1Reference(Device), CodeableConceptDevice requested
Binding: FHIRDeviceTypes (preferred)
... subject S1..1Reference(QICore Patient)Focus of request
... encounter S0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] S0..1dateTime, Period, TimingDesired time or schedule for use
... authoredOn S0..1dateTimeWhen recorded
... requester S0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performer S0..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonReference S0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DeviceRequest.code[x]preferredFHIRDeviceTypes
NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for modifierExtension ?!0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceRequest.doNotPerform"
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... status ?!SΣ0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.

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

... code[x] SΣ1..1Device requested
Binding: FHIRDeviceTypes (preferred)
.... codeReferenceReference(Device)
.... codeCodeableConceptCodeableConcept
... subject SΣ1..1Reference(QICore Patient)Focus of request
... encounter SΣ0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] SΣ0..1Desired time or schedule for use
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... authoredOn SΣ0..1dateTimeWhen recorded
... requester SΣ0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performer SΣ0..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonReference SΣ0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DeviceRequest.statusrequiredRequestStatus
DeviceRequest.intentrequiredRequestIntent
DeviceRequest.code[x]preferredFHIRDeviceTypes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorDeviceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDeviceRequestIf 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-4errorDeviceRequestIf 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-5errorDeviceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceDeviceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... id Σ0..1idLogical 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): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... Slices for modifierExtension ?!0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceRequest.doNotPerform"
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... identifier SΣ0..*IdentifierExternal Request identifier
... instantiatesCanonical Σ0..*canonical(ActivityDefinition | PlanDefinition)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... basedOn Σ0..*Reference(Resource)What request fulfills
... priorRequest Σ0..*Reference(Resource)What request replaces
... groupIdentifier Σ0..1IdentifierIdentifier of composite request
... status ?!SΣ0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.

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

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

... code[x] SΣ1..1Device requested
Binding: FHIRDeviceTypes (preferred)
.... codeReferenceReference(Device)
.... codeCodeableConceptCodeableConcept
... parameter 0..*BackboneElementDevice details
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 0..1CodeableConceptDevice detail
Binding: (unbound) (example): A code that identifies the device detail.

.... value[x] 0..1Value of detail
..... valueCodeableConceptCodeableConcept
..... valueQuantityQuantity
..... valueRangeRange
..... valueBooleanboolean
... subject SΣ1..1Reference(QICore Patient)Focus of request
... encounter SΣ0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] SΣ0..1Desired time or schedule for use
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... authoredOn SΣ0..1dateTimeWhen recorded
... requester SΣ0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performerType Σ0..1CodeableConceptFiller 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..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonCode Σ0..*CodeableConceptCoded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.


... reasonReference SΣ0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request
... insurance 0..*Reference(Coverage | ClaimResponse)Associated insurance coverage
... supportingInfo 0..*Reference(Resource)Additional clinical information
... note 0..*AnnotationNotes or comments
... relevantHistory 0..*Reference(Provenance)Request provenance

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DeviceRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DeviceRequest.statusrequiredRequestStatus
DeviceRequest.intentrequiredRequestIntent
DeviceRequest.priorityrequiredRequestPriority
DeviceRequest.code[x]preferredFHIRDeviceTypes
DeviceRequest.parameter.codeexample
DeviceRequest.performerTypeexampleParticipantRoles
DeviceRequest.reasonCodeexampleCondition/Problem/DiagnosisCodes

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from DeviceRequest

Differential View

This structure is derived from DeviceRequest

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... identifier S0..*IdentifierExternal Request identifier
... status S0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
... code[x] S1..1Reference(Device), CodeableConceptDevice requested
Binding: FHIRDeviceTypes (preferred)
... subject S1..1Reference(QICore Patient)Focus of request
... encounter S0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] S0..1dateTime, Period, TimingDesired time or schedule for use
... authoredOn S0..1dateTimeWhen recorded
... requester S0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performer S0..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonReference S0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
DeviceRequest.code[x]preferredFHIRDeviceTypes

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for modifierExtension ?!0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceRequest.doNotPerform"
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... status ?!SΣ0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.

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

... code[x] SΣ1..1Device requested
Binding: FHIRDeviceTypes (preferred)
.... codeReferenceReference(Device)
.... codeCodeableConceptCodeableConcept
... subject SΣ1..1Reference(QICore Patient)Focus of request
... encounter SΣ0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] SΣ0..1Desired time or schedule for use
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... authoredOn SΣ0..1dateTimeWhen recorded
... requester SΣ0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performer SΣ0..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonReference SΣ0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DeviceRequest.statusrequiredRequestStatus
DeviceRequest.intentrequiredRequestIntent
DeviceRequest.code[x]preferredFHIRDeviceTypes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorDeviceRequestIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorDeviceRequestIf 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-4errorDeviceRequestIf 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-5errorDeviceRequestIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceDeviceRequestA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceRequest 0..*DeviceRequestMedical device request
... id Σ0..1idLogical 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): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... Slices for modifierExtension ?!0..*ExtensionExtension
Slice: Unordered, Open by value:url
... modifierExtension:doNotPerform ?!S0..1Extension-5.0-DeviceRequest.doNotPerformExtension
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..0
.... url 1..1uri"http://hl7.org/fhir/5.0/StructureDefinition/extension-DeviceRequest.doNotPerform"
.... value[x] S1..1booleanValue of extension
Fixed Value: false
... identifier SΣ0..*IdentifierExternal Request identifier
... instantiatesCanonical Σ0..*canonical(ActivityDefinition | PlanDefinition)Instantiates FHIR protocol or definition
... instantiatesUri Σ0..*uriInstantiates external protocol or definition
... basedOn Σ0..*Reference(Resource)What request fulfills
... priorRequest Σ0..*Reference(Resource)What request replaces
... groupIdentifier Σ0..1IdentifierIdentifier of composite request
... status ?!SΣ0..1codedraft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): Codes representing the status of the request.

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

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

... code[x] SΣ1..1Device requested
Binding: FHIRDeviceTypes (preferred)
.... codeReferenceReference(Device)
.... codeCodeableConceptCodeableConcept
... parameter 0..*BackboneElementDevice details
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code 0..1CodeableConceptDevice detail
Binding: (unbound) (example): A code that identifies the device detail.

.... value[x] 0..1Value of detail
..... valueCodeableConceptCodeableConcept
..... valueQuantityQuantity
..... valueRangeRange
..... valueBooleanboolean
... subject SΣ1..1Reference(QICore Patient)Focus of request
... encounter SΣ0..1Reference(QICore Encounter)Encounter motivating request
... occurrence[x] SΣ0..1Desired time or schedule for use
.... occurrenceDateTimedateTime
.... occurrencePeriodPeriod
.... occurrenceTimingTiming
... authoredOn SΣ0..1dateTimeWhen recorded
... requester SΣ0..1Reference(QICore Device | US Core Implantable Device Profile | QICore Practitioner | QICore PractitionerRole | QICore Organization)Who/what is requesting diagnostics
... performerType Σ0..1CodeableConceptFiller 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..1Reference(QICore Practitioner | QICore PractitionerRole | QICore Organization | QICore CareTeam | QICore Patient | QICore Device | US Core Implantable Device Profile | QICore RelatedPerson)Requested Filler
... reasonCode Σ0..*CodeableConceptCoded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.


... reasonReference SΣ0..*Reference(QICore Condition Encounter Diagnosis | QICore Condition Problems Health Concerns | QICore Observation)Linked Reason for request
... insurance 0..*Reference(Coverage | ClaimResponse)Associated insurance coverage
... supportingInfo 0..*Reference(Resource)Additional clinical information
... note 0..*AnnotationNotes or comments
... relevantHistory 0..*Reference(Provenance)Request provenance

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DeviceRequest.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DeviceRequest.statusrequiredRequestStatus
DeviceRequest.intentrequiredRequestIntent
DeviceRequest.priorityrequiredRequestPriority
DeviceRequest.code[x]preferredFHIRDeviceTypes
DeviceRequest.parameter.codeexample
DeviceRequest.performerTypeexampleParticipantRoles
DeviceRequest.reasonCodeexampleCondition/Problem/DiagnosisCodes

Constraints

IdGradePath(s)DetailsRequirements
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

This structure is derived from DeviceRequest

 

Other representations of profile: CSV, Excel, Schematron