This page is part of the FHIR Specification (v4.4.0: R5 Preview #2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
Orders and Observations Work Group | Maturity Level: 0 | Trial Use | Security Category: Patient | Compartments: Device, Encounter, Patient, Practitioner |
Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker.
Trial-Use Note: In terms of scope and usage, the Orders and Observations workgroups wish to draw the attention of reviewers and implementers to the following issue:
- We are seeking input from the implementation community on whether to combine DeviceRequest and VisionPrescription for R4. The parameters element was added to DeviceRequest for representing custom details for ordering devices. With this change, VisionPrescription significantly overlaps DeviceRequest. To illustrate this, the devicerequest-left-lens and devicerequest-right-lens examples are based on the general glasses example in VisionPrescription.
This resource is a request resource from a FHIR workflow perspective - see Workflow.
This resource describes the request for the 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 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.
The device use request may represent an order or a prescription entered by a practitioner in a CPOE system or a proposal made by a clinical decision support (CDS) system based on a patient's clinical record and context of care.
This resource deals with the allocation of a device to a patient and while it may contain instructions on how to use the device, the data about getting the device to the patient is addressed in other resources. For example, certain devices must be implanted via a surgical or other procedure and the implantation or explantation is represented in the [Procedure](procedure.html) or [ServiceRequest](servicerequest.html) resource.
The SupplyRequest resource is similar in that it deals with requesting a particular item for a specific patient. However, DeviceRequest is concerned with items where there is a patient focus, or instructions regarding their use, whereas SupplyRequest is concerned with inventory management.
This resource is referenced by CarePlan, Claim and Observation.
This resource implements the Request pattern.
Structure
UML Diagram (Legend)
XML Template
<DeviceRequest xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External Request identifier --></identifier> <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates FHIR protocol or definition --></instantiatesCanonical> <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition --> <basedOn><!-- 0..* Reference(Any) What request fulfills --></basedOn> <priorRequest><!-- 0..* Reference(Any) What request replaces --></priorRequest> <groupIdentifier><!-- 0..1 Identifier Identifier of composite request --></groupIdentifier> <status value="[code]"/><!-- 0..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown --> <intent value="[code]"/><!-- 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 1..1 CodeableReference(Device|DeviceDefinition) Device requested --></code> <parameter> <!-- 0..* Device details --> <code><!-- 0..1 CodeableConcept Device detail --></code> <value[x]><!-- 0..1 CodeableConcept|Quantity|Range|boolean Value of detail --></value[x]> </parameter> <subject><!-- 1..1 Reference(Device|Group|Location|Patient) Focus of request --></subject> <encounter><!-- 0..1 Reference(Encounter) Encounter motivating request --></encounter> <occurrence[x]><!-- 0..1 dateTime|Period|Timing Desired time or schedule for use --></occurrence[x]> <authoredOn value="[dateTime]"/><!-- 0..1 When recorded --> <requester><!-- 0..1 Reference(Device|Organization|Practitioner|PractitionerRole) Who/what is requesting diagnostics --></requester> <performerType><!-- 0..1 CodeableConcept Filler role --></performerType> <performer><!-- 0..1 Reference(CareTeam|Device|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Requested Filler --></performer> <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) Coded/Linked Reason for request --></reason> <insurance><!-- 0..* Reference(ClaimResponse|Coverage) Associated insurance coverage --></insurance> <supportingInfo><!-- 0..* Reference(Any) Additional clinical information --></supportingInfo> <note><!-- 0..* Annotation Notes or comments --></note> <relevantHistory><!-- 0..* Reference(Provenance) Request provenance --></relevantHistory> </DeviceRequest>
JSON Template
{ "resourceType" : "DeviceRequest", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External Request identifier "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates FHIR protocol or definition "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition "basedOn" : [{ Reference(Any) }], // What request fulfills "priorRequest" : [{ Reference(Any) }], // What request replaces "groupIdentifier" : { Identifier }, // Identifier of composite request "status" : "<code>", // draft | active | on-hold | revoked | completed | entered-in-error | unknown "intent" : "<code>", // R! proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option "priority" : "<code>", // routine | urgent | asap | stat "code" : { CodeableReference(Device|DeviceDefinition) }, // R! Device requested "parameter" : [{ // Device details "code" : { CodeableConcept }, // Device detail // value[x]: Value of detail. One of these 4: "valueCodeableConcept" : { CodeableConcept } "valueQuantity" : { Quantity } "valueRange" : { Range } "valueBoolean" : <boolean> }], "subject" : { Reference(Device|Group|Location|Patient) }, // R! Focus of request "encounter" : { Reference(Encounter) }, // Encounter motivating request // occurrence[x]: Desired time or schedule for use. One of these 3: "occurrenceDateTime" : "<dateTime>", "occurrencePeriod" : { Period }, "occurrenceTiming" : { Timing }, "authoredOn" : "<dateTime>", // When recorded "requester" : { Reference(Device|Organization|Practitioner|PractitionerRole) }, // Who/what is requesting diagnostics "performerType" : { CodeableConcept }, // Filler role "performer" : { Reference(CareTeam|Device|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) }, // Requested Filler "reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) }], // Coded/Linked Reason for request "insurance" : [{ Reference(ClaimResponse|Coverage) }], // Associated insurance coverage "supportingInfo" : [{ Reference(Any) }], // Additional clinical information "note" : [{ Annotation }], // Notes or comments "relevantHistory" : [{ Reference(Provenance) }] // Request provenance }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:DeviceRequest; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:DeviceRequest.identifier [ Identifier ], ... ; # 0..* External Request identifier fhir:DeviceRequest.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates FHIR protocol or definition fhir:DeviceRequest.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition fhir:DeviceRequest.basedOn [ Reference(Any) ], ... ; # 0..* What request fulfills fhir:DeviceRequest.priorRequest [ Reference(Any) ], ... ; # 0..* What request replaces fhir:DeviceRequest.groupIdentifier [ Identifier ]; # 0..1 Identifier of composite request fhir:DeviceRequest.status [ code ]; # 0..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown fhir:DeviceRequest.intent [ code ]; # 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option fhir:DeviceRequest.priority [ code ]; # 0..1 routine | urgent | asap | stat fhir:DeviceRequest.code [ CodeableReference(Device|DeviceDefinition) ]; # 1..1 Device requested fhir:DeviceRequest.parameter [ # 0..* Device details fhir:DeviceRequest.parameter.code [ CodeableConcept ]; # 0..1 Device detail # DeviceRequest.parameter.value[x] : 0..1 Value of detail. One of these 4 fhir:DeviceRequest.parameter.valueCodeableConcept [ CodeableConcept ] fhir:DeviceRequest.parameter.valueQuantity [ Quantity ] fhir:DeviceRequest.parameter.valueRange [ Range ] fhir:DeviceRequest.parameter.valueBoolean [ boolean ] ], ...; fhir:DeviceRequest.subject [ Reference(Device|Group|Location|Patient) ]; # 1..1 Focus of request fhir:DeviceRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter motivating request # DeviceRequest.occurrence[x] : 0..1 Desired time or schedule for use. One of these 3 fhir:DeviceRequest.occurrenceDateTime [ dateTime ] fhir:DeviceRequest.occurrencePeriod [ Period ] fhir:DeviceRequest.occurrenceTiming [ Timing ] fhir:DeviceRequest.authoredOn [ dateTime ]; # 0..1 When recorded fhir:DeviceRequest.requester [ Reference(Device|Organization|Practitioner|PractitionerRole) ]; # 0..1 Who/what is requesting diagnostics fhir:DeviceRequest.performerType [ CodeableConcept ]; # 0..1 Filler role fhir:DeviceRequest.performer [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) ]; # 0..1 Requested Filler fhir:DeviceRequest.reason [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation) ], ... ; # 0..* Coded/Linked Reason for request fhir:DeviceRequest.insurance [ Reference(ClaimResponse|Coverage) ], ... ; # 0..* Associated insurance coverage fhir:DeviceRequest.supportingInfo [ Reference(Any) ], ... ; # 0..* Additional clinical information fhir:DeviceRequest.note [ Annotation ], ... ; # 0..* Notes or comments fhir:DeviceRequest.relevantHistory [ Reference(Provenance) ], ... ; # 0..* Request provenance ]
Changes since R3
DeviceRequest | |
DeviceRequest.status |
|
DeviceRequest.intent |
|
DeviceRequest.priority |
|
DeviceRequest.code |
|
DeviceRequest.reason |
|
DeviceRequest.code[x] |
|
DeviceRequest.reasonCode |
|
DeviceRequest.reasonReference |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. 2 fail round-trip testing and 1 r3 resources are invalid (0 errors).)
Structure
XML Template
<DeviceRequest xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier External Request identifier --></identifier> <instantiatesCanonical><!-- 0..* canonical(ActivityDefinition|PlanDefinition) Instantiates FHIR protocol or definition --></instantiatesCanonical> <instantiatesUri value="[uri]"/><!-- 0..* Instantiates external protocol or definition --> <basedOn><!-- 0..* Reference(Any) What request fulfills --></basedOn> <priorRequest><!-- 0..* Reference(Any) What request replaces --></priorRequest> <groupIdentifier><!-- 0..1 Identifier Identifier of composite request --></groupIdentifier> <status value="[code]"/><!-- 0..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown --> <intent value="[code]"/><!-- 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option --> <priority value="[code]"/><!-- 0..1 routine | urgent | asap | stat --> <code><!-- 1..1 CodeableReference(Device|DeviceDefinition) Device requested --></code> <parameter> <!-- 0..* Device details --> <code><!-- 0..1 CodeableConcept Device detail --></code> <value[x]><!-- 0..1 CodeableConcept|Quantity|Range|boolean Value of detail --></value[x]> </parameter> <subject><!-- 1..1 Reference(Device|Group|Location|Patient) Focus of request --></subject> <encounter><!-- 0..1 Reference(Encounter) Encounter motivating request --></encounter> <occurrence[x]><!-- 0..1 dateTime|Period|Timing Desired time or schedule for use --></occurrence[x]> <authoredOn value="[dateTime]"/><!-- 0..1 When recorded --> <requester><!-- 0..1 Reference(Device|Organization|Practitioner|PractitionerRole) Who/what is requesting diagnostics --></requester> <performerType><!-- 0..1 CodeableConcept Filler role --></performerType> <performer><!-- 0..1 Reference(CareTeam|Device|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) Requested Filler --></performer> <reason><!-- 0..* CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) Coded/Linked Reason for request --></reason> <insurance><!-- 0..* Reference(ClaimResponse|Coverage) Associated insurance coverage --></insurance> <supportingInfo><!-- 0..* Reference(Any) Additional clinical information --></supportingInfo> <note><!-- 0..* Annotation Notes or comments --></note> <relevantHistory><!-- 0..* Reference(Provenance) Request provenance --></relevantHistory> </DeviceRequest>
JSON Template
{ "resourceType" : "DeviceRequest", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // External Request identifier "instantiatesCanonical" : [{ canonical(ActivityDefinition|PlanDefinition) }], // Instantiates FHIR protocol or definition "instantiatesUri" : ["<uri>"], // Instantiates external protocol or definition "basedOn" : [{ Reference(Any) }], // What request fulfills "priorRequest" : [{ Reference(Any) }], // What request replaces "groupIdentifier" : { Identifier }, // Identifier of composite request "status" : "<code>", // draft | active | on-hold | revoked | completed | entered-in-error | unknown "intent" : "<code>", // R! proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option "priority" : "<code>", // routine | urgent | asap | stat "code" : { CodeableReference(Device|DeviceDefinition) }, // R! Device requested "parameter" : [{ // Device details "code" : { CodeableConcept }, // Device detail // value[x]: Value of detail. One of these 4: "valueCodeableConcept" : { CodeableConcept } "valueQuantity" : { Quantity } "valueRange" : { Range } "valueBoolean" : <boolean> }], "subject" : { Reference(Device|Group|Location|Patient) }, // R! Focus of request "encounter" : { Reference(Encounter) }, // Encounter motivating request // occurrence[x]: Desired time or schedule for use. One of these 3: "occurrenceDateTime" : "<dateTime>", "occurrencePeriod" : { Period }, "occurrenceTiming" : { Timing }, "authoredOn" : "<dateTime>", // When recorded "requester" : { Reference(Device|Organization|Practitioner|PractitionerRole) }, // Who/what is requesting diagnostics "performerType" : { CodeableConcept }, // Filler role "performer" : { Reference(CareTeam|Device|HealthcareService|Organization| Patient|Practitioner|PractitionerRole|RelatedPerson) }, // Requested Filler "reason" : [{ CodeableReference(Condition|DiagnosticReport|DocumentReference| Observation) }], // Coded/Linked Reason for request "insurance" : [{ Reference(ClaimResponse|Coverage) }], // Associated insurance coverage "supportingInfo" : [{ Reference(Any) }], // Additional clinical information "note" : [{ Annotation }], // Notes or comments "relevantHistory" : [{ Reference(Provenance) }] // Request provenance }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:DeviceRequest; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:DeviceRequest.identifier [ Identifier ], ... ; # 0..* External Request identifier fhir:DeviceRequest.instantiatesCanonical [ canonical(ActivityDefinition|PlanDefinition) ], ... ; # 0..* Instantiates FHIR protocol or definition fhir:DeviceRequest.instantiatesUri [ uri ], ... ; # 0..* Instantiates external protocol or definition fhir:DeviceRequest.basedOn [ Reference(Any) ], ... ; # 0..* What request fulfills fhir:DeviceRequest.priorRequest [ Reference(Any) ], ... ; # 0..* What request replaces fhir:DeviceRequest.groupIdentifier [ Identifier ]; # 0..1 Identifier of composite request fhir:DeviceRequest.status [ code ]; # 0..1 draft | active | on-hold | revoked | completed | entered-in-error | unknown fhir:DeviceRequest.intent [ code ]; # 1..1 proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option fhir:DeviceRequest.priority [ code ]; # 0..1 routine | urgent | asap | stat fhir:DeviceRequest.code [ CodeableReference(Device|DeviceDefinition) ]; # 1..1 Device requested fhir:DeviceRequest.parameter [ # 0..* Device details fhir:DeviceRequest.parameter.code [ CodeableConcept ]; # 0..1 Device detail # DeviceRequest.parameter.value[x] : 0..1 Value of detail. One of these 4 fhir:DeviceRequest.parameter.valueCodeableConcept [ CodeableConcept ] fhir:DeviceRequest.parameter.valueQuantity [ Quantity ] fhir:DeviceRequest.parameter.valueRange [ Range ] fhir:DeviceRequest.parameter.valueBoolean [ boolean ] ], ...; fhir:DeviceRequest.subject [ Reference(Device|Group|Location|Patient) ]; # 1..1 Focus of request fhir:DeviceRequest.encounter [ Reference(Encounter) ]; # 0..1 Encounter motivating request # DeviceRequest.occurrence[x] : 0..1 Desired time or schedule for use. One of these 3 fhir:DeviceRequest.occurrenceDateTime [ dateTime ] fhir:DeviceRequest.occurrencePeriod [ Period ] fhir:DeviceRequest.occurrenceTiming [ Timing ] fhir:DeviceRequest.authoredOn [ dateTime ]; # 0..1 When recorded fhir:DeviceRequest.requester [ Reference(Device|Organization|Practitioner|PractitionerRole) ]; # 0..1 Who/what is requesting diagnostics fhir:DeviceRequest.performerType [ CodeableConcept ]; # 0..1 Filler role fhir:DeviceRequest.performer [ Reference(CareTeam|Device|HealthcareService|Organization|Patient|Practitioner| PractitionerRole|RelatedPerson) ]; # 0..1 Requested Filler fhir:DeviceRequest.reason [ CodeableReference(Condition|DiagnosticReport|DocumentReference|Observation) ], ... ; # 0..* Coded/Linked Reason for request fhir:DeviceRequest.insurance [ Reference(ClaimResponse|Coverage) ], ... ; # 0..* Associated insurance coverage fhir:DeviceRequest.supportingInfo [ Reference(Any) ], ... ; # 0..* Additional clinical information fhir:DeviceRequest.note [ Annotation ], ... ; # 0..* Notes or comments fhir:DeviceRequest.relevantHistory [ Reference(Provenance) ], ... ; # 0..* Request provenance ]
Changes since Release 3
DeviceRequest | |
DeviceRequest.status |
|
DeviceRequest.intent |
|
DeviceRequest.priority |
|
DeviceRequest.code |
|
DeviceRequest.reason |
|
DeviceRequest.code[x] |
|
DeviceRequest.reasonCode |
|
DeviceRequest.reasonReference |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 2 tests that all execute ok. 2 fail round-trip testing and 1 r3 resources are invalid (0 errors).)
See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis a
Path | Definition | Type | Reference |
---|---|---|---|
DeviceRequest.status | Codes representing the status of the request. | Required | RequestStatus |
DeviceRequest.intent | The kind of diagnostic request. | Required | RequestIntent |
DeviceRequest.priority | Identifies the level of importance to be assigned to actioning the request. | Required | RequestPriority |
DeviceRequest.code | Codes for devices that can be requested. | Example | FHIRDeviceTypes |
DeviceRequest.parameter.code | A code that identifies the device detail. | Unknown | No details provided yet |
DeviceRequest.performerType | Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc. | Example | ParticipantRoles |
DeviceRequest.reason | Diagnosis or problem codes justifying the reason for requesting the device. | Example | Condition/Problem/DiagnosisCodes |
Notes to reviewers:
At this time, the code bindings are placeholders to be fleshed out upon further review by the community.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Expression | In Common |
authored-on N | date | When the request transitioned to being actionable | DeviceRequest.authoredOn | |
based-on | reference | Plan/proposal/order fulfilled by this request | DeviceRequest.basedOn (Any) | |
code D | token | Code for what is being requested/ordered | DeviceRequest.code.concept | 13 Resources |
device D | reference | Reference to resource that is being requested/ordered | DeviceRequest.code.reference | |
encounter | reference | Encounter during which request was created | DeviceRequest.encounter (Encounter) | 12 Resources |
event-date | date | When service should occur | (DeviceRequest.occurrence as dateTime) | (DeviceRequest.occurrence as Period) | |
group-identifier | token | Composite request this is part of | DeviceRequest.groupIdentifier | |
identifier | token | Business identifier for request/order | DeviceRequest.identifier | 30 Resources |
instantiates-canonical N | reference | Instantiates FHIR protocol or definition | DeviceRequest.instantiatesCanonical (PlanDefinition, ActivityDefinition) | |
instantiates-uri N | uri | Instantiates external protocol or definition | DeviceRequest.instantiatesUri | |
insurance | reference | Associated insurance coverage | DeviceRequest.insurance (ClaimResponse, Coverage) | |
intent N | token | proposal | plan | original-order |reflex-order | DeviceRequest.intent | |
patient | reference | Individual the service is ordered for | DeviceRequest.subject.where(resolve() is Patient) (Patient) | 33 Resources |
performer | reference | Desired performer for service | DeviceRequest.performer (Practitioner, Organization, CareTeam, Device, Patient, HealthcareService, PractitionerRole, RelatedPerson) | |
prior-request | reference | Request takes the place of referenced completed or terminated requests | DeviceRequest.priorRequest (Any) | |
requester | reference | Who/what is requesting service | DeviceRequest.requester (Practitioner, Organization, Device, PractitionerRole) | |
status N | token | entered-in-error | draft | active |suspended | completed | DeviceRequest.status | |
subject | reference | Individual the service is ordered for | DeviceRequest.subject (Group, Device, Patient, Location) |