QI-Core Implementation Guide - This is the current published version.. See the Directory of published versions
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:
// 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' }
See the patterns page for implementation and usage patterns.
General DeviceRequest Example |
The official URL for this profile is:
http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-devicerequest
Profile of DeviceRequest for decision support/quality metrics. Defines the core set of elements and extensions for quality rule and measure authors.
This profile builds on DeviceRequest.
This profile was published on Thu Jul 11 00:00:00 UTC 2019 as a draft by Health Level Seven, Inc. - CQI WG.
Description of Profiles, Differentials, and Snapshots.
Summary
Must-Support: 11 elements
Structures
This structure refers to these other structures:
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DeviceRequest | I | 0..* | DeviceRequest | Medical device request |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣI | 0..* | Identifier | External Request identifier |
instantiatesCanonical | ΣI | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition |
instantiatesUri | ΣI | 0..* | uri | Instantiates external protocol or definition |
basedOn | ΣI | 0..* | Reference(Resource) | What request fulfills |
priorRequest | ΣI | 0..* | Reference(Resource) | What request replaces |
groupIdentifier | ΣI | 0..1 | Identifier | Identifier of composite request |
status | ?!SΣI | 0..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required) |
intent | ?!SΣI | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required) |
priority | ΣI | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required) |
code[x] | SΣI | 1..1 | Device requested Binding: FHIRDeviceTypes (example) | |
codeReference | Reference(Device) | |||
codeCodeableConcept | CodeableConcept | |||
parameter | I | 0..* | BackboneElement | Device details |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | I | 0..1 | CodeableConcept | Device detail Binding: (unbound) (example) |
value[x] | I | 0..1 | Value of detail | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueBoolean | boolean | |||
subject | SΣI | 1..1 | Reference(QICorePatient) | Focus of request |
encounter | SΣI | 0..1 | Reference(QICoreEncounter) | Encounter motivating request |
occurrence[x] | SΣI | 0..1 | Desired time or schedule for use | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
authoredOn | SΣI | 0..1 | dateTime | When recorded |
requester | SΣI | 0..1 | Reference(QICoreDevice | QICorePractitioner | QICorePractitionerRole | QICoreOrganization) | Who/what is requesting diagnostics |
performerType | ΣI | 0..1 | CodeableConcept | Filler role Binding: ParticipantRoles (example) |
performer | SΣI | 0..1 | Reference(QICorePractitioner | QICorePractitionerRole | QICoreOrganization | QICoreCareTeam | QICorePatient | QICoreDevice | QICoreRelatedPerson) | Requested Filler |
reasonCode | ΣI | 0..* | CodeableConcept | Coded Reason for request Binding: Condition/Problem/DiagnosisCodes (example) |
reasonReference | SΣI | 0..* | Reference(QICoreCondition | QICoreObservation) | Linked Reason for request |
insurance | I | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage |
supportingInfo | I | 0..* | Reference(Resource) | Additional clinical information |
note | I | 0..* | Annotation | Notes or comments |
relevantHistory | I | 0..* | Reference(Provenance) | Request provenance |
Documentation for this format |
Summary
Must-Support: 11 elements
Structures
This structure refers to these other structures:
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
DeviceRequest | I | 0..* | DeviceRequest | Medical device request |
id | Σ | 0..1 | string | Logical id of this artifact |
meta | ΣI | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!ΣI | 0..1 | uri | A set of rules under which this content was created |
language | I | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages |
text | I | 0..1 | Narrative | Text summary of the resource, for human interpretation |
contained | 0..* | Resource | Contained, inline Resources | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!I | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣI | 0..* | Identifier | External Request identifier |
instantiatesCanonical | ΣI | 0..* | canonical(ActivityDefinition | PlanDefinition) | Instantiates FHIR protocol or definition |
instantiatesUri | ΣI | 0..* | uri | Instantiates external protocol or definition |
basedOn | ΣI | 0..* | Reference(Resource) | What request fulfills |
priorRequest | ΣI | 0..* | Reference(Resource) | What request replaces |
groupIdentifier | ΣI | 0..1 | Identifier | Identifier of composite request |
status | ?!SΣI | 0..1 | code | draft | active | on-hold | revoked | completed | entered-in-error | unknown Binding: RequestStatus (required) |
intent | ?!SΣI | 1..1 | code | proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Binding: RequestIntent (required) |
priority | ΣI | 0..1 | code | routine | urgent | asap | stat Binding: RequestPriority (required) |
code[x] | SΣI | 1..1 | Device requested Binding: FHIRDeviceTypes (example) | |
codeReference | Reference(Device) | |||
codeCodeableConcept | CodeableConcept | |||
parameter | I | 0..* | BackboneElement | Device details |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | I | 0..* | Extension | Additional content defined by implementations |
modifierExtension | ?!ΣI | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
code | I | 0..1 | CodeableConcept | Device detail Binding: (unbound) (example) |
value[x] | I | 0..1 | Value of detail | |
valueCodeableConcept | CodeableConcept | |||
valueQuantity | Quantity | |||
valueRange | Range | |||
valueBoolean | boolean | |||
subject | SΣI | 1..1 | Reference(QICorePatient) | Focus of request |
encounter | SΣI | 0..1 | Reference(QICoreEncounter) | Encounter motivating request |
occurrence[x] | SΣI | 0..1 | Desired time or schedule for use | |
occurrenceDateTime | dateTime | |||
occurrencePeriod | Period | |||
occurrenceTiming | Timing | |||
authoredOn | SΣI | 0..1 | dateTime | When recorded |
requester | SΣI | 0..1 | Reference(QICoreDevice | QICorePractitioner | QICorePractitionerRole | QICoreOrganization) | Who/what is requesting diagnostics |
performerType | ΣI | 0..1 | CodeableConcept | Filler role Binding: ParticipantRoles (example) |
performer | SΣI | 0..1 | Reference(QICorePractitioner | QICorePractitionerRole | QICoreOrganization | QICoreCareTeam | QICorePatient | QICoreDevice | QICoreRelatedPerson) | Requested Filler |
reasonCode | ΣI | 0..* | CodeableConcept | Coded Reason for request Binding: Condition/Problem/DiagnosisCodes (example) |
reasonReference | SΣI | 0..* | Reference(QICoreCondition | QICoreObservation) | Linked Reason for request |
insurance | I | 0..* | Reference(Coverage | ClaimResponse) | Associated insurance coverage |
supportingInfo | I | 0..* | Reference(Resource) | Additional clinical information |
note | I | 0..* | Annotation | Notes or comments |
relevantHistory | I | 0..* | Reference(Provenance) | Request provenance |
Documentation for this format |
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 | Path | Details | Requirements |
dom-2 | DeviceRequest | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | 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 | 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 | DeviceRequest | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | DeviceRequest | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | DeviceRequest.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | DeviceRequest.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | DeviceRequest.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | DeviceRequest.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | DeviceRequest.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.instantiatesCanonical | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.instantiatesUri | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.priorRequest | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.groupIdentifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.intent | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.priority | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.code[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.parameter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.parameter.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | DeviceRequest.parameter.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | DeviceRequest.parameter.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | DeviceRequest.parameter.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
ele-1 | DeviceRequest.parameter.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.parameter.value[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.occurrence[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.authoredOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.requester | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.performerType | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.reasonCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.reasonReference | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.insurance | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.supportingInfo | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.note | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ele-1 | DeviceRequest.relevantHistory | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |