QI-Core Implementation Guide
4.1.0 - release
This page is part of the Quality Improvement Core Framework (v4.1.0: STU 4) 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
Defining URL: | http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest |
Version: | 4.1.0 |
Name: | QICoreDeviceRequest |
Status: | Draft as of 7/11/19 |
Definition: | Profile of DeviceRequest for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors. |
Publisher: | http://www.hl7.org/Special/committees/cqi/index.cfm |
Source Resource: | XML / JSON / Turtle |
The official URL for this profile is:
http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest
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 DeviceRequest and DeviceNotRequested profiles represent the positive and negative statements for a device request. To ensure instances retrieved meet positive intent, applications should check the status and doNotPerform elements as illustrated in this example:
define DeviceRequest:
[DeviceRequest] D
where D.status in { 'draft', 'active', 'on-hold', 'revoked', 'completed' }
and D.doNotPerform() is not true
The following example illustrates the use of DeviceRequest:
// connectathon/fhir4/cql/AdvancedIllnessandFrailtyExclusion_FHIR4-4.0.000.cql
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' }
and FrailtyDeviceOrder.doNotPerform() is not true
General DeviceRequest Example |
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from DeviceRequest
Summary
Must-Support: 11 elements
Structures
This structure refers to these other structures:
This structure is derived from DeviceRequest
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DeviceRequest | 0..* | DeviceRequest | Medical device request | |
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 | SΣ | 0..* | Identifier | External Request identifier |
instantiatesCanonical | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition |
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition |
basedOn | Σ | 0..* | Reference(Resource) | What request fulfills |
priorRequest | Σ | 0..* | Reference(Resource) | What request replaces |
groupIdentifier | Σ | 0..1 | Identifier | Identifier of composite request |
status | ?!SΣ | 0..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required): Codes representing the status of the request. |
intent | ?!SΣ | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): The kind of diagnostic request. |
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. |
code[x] | SΣ | 1..1 | Device requested Binding: FHIRDeviceTypes (example): Codes for devices that can be requested. | |
codeReference | Reference(Device) | |||
codeCodeableConcept | CodeableConcept | |||
parameter | 0..* | BackboneElement | Device details | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | 0..1 | CodeableConcept | Device detail Binding: (unbound) (example): A code that identifies the device detail. | |
value[x] | 0..1 | Value of detail | ||
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueBoolean | boolean | |||
subject | SΣ | 1..1 | Reference(QICorePatient) | Focus of request |
encounter | SΣ | 0..1 | Reference(QICoreEncounter) | Encounter motivating request |
occurrence[x] | SΣ | 0..1 | Desired time or schedule for use | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
authoredOn | SΣ | 0..1 | dateTime | When recorded |
requester | SΣ | 0..1 | Reference(QICoreDevice | QICorePractitioner | QICorePractitionerRole | QICoreOrganization) | Who/what is requesting diagnostics |
performerType | Σ | 0..1 | CodeableConcept | Filler 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..1 | Reference(QICorePractitioner | QICorePractitionerRole | QICoreOrganization | QICoreCareTeam | QICorePatient | QICoreDevice | QICoreRelatedPerson) | Requested Filler |
reasonCode | Σ | 0..* | CodeableConcept | Coded Reason for request Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device. |
reasonReference | SΣ | 0..* | Reference(QICoreCondition | QICoreObservation) | Linked Reason for request |
insurance | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |
supportingInfo | 0..* | Reference(Resource) | Additional clinical information | |
note | 0..* | Annotation | Notes or comments | |
relevantHistory | 0..* | Reference(Provenance) | Request provenance | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DeviceRequest | 0..* | DeviceRequest | Medical device request | |
identifier | Σ | 0..* | Identifier | External Request identifier |
status | ?!Σ | 0..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required): Codes representing the status of the request. |
intent | ?!Σ | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): The kind of diagnostic request. |
code[x] | Σ | 1..1 | Device requested Binding: FHIRDeviceTypes (example): Codes for devices that can be requested. | |
codeReference | Reference(Device) | |||
codeCodeableConcept | CodeableConcept | |||
subject | Σ | 1..1 | Reference(QICorePatient) | Focus of request |
encounter | Σ | 0..1 | Reference(QICoreEncounter) | Encounter motivating request |
occurrence[x] | Σ | 0..1 | Desired time or schedule for use | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
authoredOn | Σ | 0..1 | dateTime | When recorded |
requester | Σ | 0..1 | Reference(QICoreDevice | QICorePractitioner | QICorePractitionerRole | QICoreOrganization) | Who/what is requesting diagnostics |
performer | Σ | 0..1 | Reference(QICorePractitioner | QICorePractitionerRole | QICoreOrganization | QICoreCareTeam | QICorePatient | QICoreDevice | QICoreRelatedPerson) | Requested Filler |
reasonReference | Σ | 0..* | Reference(QICoreCondition | QICoreObservation) | Linked Reason for request |
Documentation for this format |
This structure is derived from DeviceRequest
Summary
Must-Support: 11 elements
Structures
This structure refers to these other structures:
Differential View
This structure is derived from DeviceRequest
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DeviceRequest | 0..* | DeviceRequest | Medical device request | |
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 | SΣ | 0..* | Identifier | External Request identifier |
instantiatesCanonical | Σ | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition |
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition |
basedOn | Σ | 0..* | Reference(Resource) | What request fulfills |
priorRequest | Σ | 0..* | Reference(Resource) | What request replaces |
groupIdentifier | Σ | 0..1 | Identifier | Identifier of composite request |
status | ?!SΣ | 0..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required): Codes representing the status of the request. |
intent | ?!SΣ | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required): The kind of diagnostic request. |
priority | Σ | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request. |
code[x] | SΣ | 1..1 | Device requested Binding: FHIRDeviceTypes (example): Codes for devices that can be requested. | |
codeReference | Reference(Device) | |||
codeCodeableConcept | CodeableConcept | |||
parameter | 0..* | BackboneElement | Device details | |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | 0..1 | CodeableConcept | Device detail Binding: (unbound) (example): A code that identifies the device detail. | |
value[x] | 0..1 | Value of detail | ||
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueBoolean | boolean | |||
subject | SΣ | 1..1 | Reference(QICorePatient) | Focus of request |
encounter | SΣ | 0..1 | Reference(QICoreEncounter) | Encounter motivating request |
occurrence[x] | SΣ | 0..1 | Desired time or schedule for use | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
authoredOn | SΣ | 0..1 | dateTime | When recorded |
requester | SΣ | 0..1 | Reference(QICoreDevice | QICorePractitioner | QICorePractitionerRole | QICoreOrganization) | Who/what is requesting diagnostics |
performerType | Σ | 0..1 | CodeableConcept | Filler 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..1 | Reference(QICorePractitioner | QICorePractitionerRole | QICoreOrganization | QICoreCareTeam | QICorePatient | QICoreDevice | QICoreRelatedPerson) | Requested Filler |
reasonCode | Σ | 0..* | CodeableConcept | Coded Reason for request Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device. |
reasonReference | SΣ | 0..* | Reference(QICoreCondition | QICoreObservation) | Linked Reason for request |
insurance | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage | |
supportingInfo | 0..* | Reference(Resource) | Additional clinical information | |
note | 0..* | Annotation | Notes or comments | |
relevantHistory | 0..* | Reference(Provenance) | Request provenance | |
Documentation for this format |
Other representations of profile: CSV, Excel, Schematron
Path | Conformance | ValueSet |
DeviceRequest.language | preferred | CommonLanguages Max Binding: AllLanguages |
DeviceRequest.status | required | RequestStatus |
DeviceRequest.intent | required | RequestIntent |
DeviceRequest.priority | required | RequestPriority |
DeviceRequest.code[x] | example | FHIRDeviceTypes |
DeviceRequest.parameter.code | example | |
DeviceRequest.performerType | example | ParticipantRoles |
DeviceRequest.reasonCode | example | Condition/Problem/DiagnosisCodes |
Id | Grade | Path | Details | Requirements |
dom-2 | error | DeviceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | DeviceRequest | 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 | error | DeviceRequest | 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 | error | DeviceRequest | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | Best Practice | DeviceRequest | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | DeviceRequest.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | DeviceRequest.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | DeviceRequest.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | DeviceRequest.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | DeviceRequest.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.instantiatesCanonical | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.instantiatesUri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.priorRequest | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.groupIdentifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.intent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.priority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.code[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.parameter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.parameter.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | DeviceRequest.parameter.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | DeviceRequest.parameter.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | DeviceRequest.parameter.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | error | DeviceRequest.parameter.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.parameter.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.occurrence[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.authoredOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.requester | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.performerType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.insurance | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.supportingInfo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | error | DeviceRequest.relevantHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |