ediverse Explore the platform

Spotlight PEPPOL BIS Billing 3.0 The EU e-invoicing mandate is here — France Sept 2026, Belgium Jan 2026, Germany 2025.

DeviceRequest — Prescription of a medical device

The request to supply a device to a patient: wheelchair, hearing aid, hospital bed, insulin pump. Cornerstone of the US DME (Durable Medical Equipment) workflow and of device prescribing in Europe.

Purpose of the resource

DeviceRequest represents a request for a patient to use a medical device. The canonical use case is DME prescription: wheelchair, hearing aid, brace, insulin pump, hospital bed. The resource also covers a request to implant a device and the prescription of a SaMD (Software as a Medical Device).

DeviceRequest aligns with the other FHIR request resources — ServiceRequest, MedicationRequest — via the status × intent combination that forms the unified "FHIR order" workflow pattern. The requested device can be referenced by type (generic SNOMED CT code) or by a precise instance (Reference(Device)) if it is already identified.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*External identifiers (prescription number, purchase order…).
instantiatesCanonicalcanonical[]0..*Canonical reference to a PlanDefinition or ActivityDefinition.
instantiatesUriuri[]0..*External URI of a protocol.
basedOnReference(any)[]0..*The DeviceRequest is created in execution of another Request (CarePlan, ServiceRequest…).
replacesReference(DeviceRequest)[]0..*The DeviceRequest replaces an earlier request.
groupIdentifierIdentifier0..1Group identifier linking multiple DeviceRequests issued together.
statuscode0..1Request lifecycle state.
intentcode1..1Mandatory. Intent level. Modifier.
prioritycode0..1routine / urgent / asap / stat.
doNotPerformboolean0..1"Do not use" — semantic inversion. Modifier.
codeCodeableReference(Device | DeviceDefinition)1..1Mandatory. Which device is requested: by SNOMED CT code or by reference to a precise instance.
quantityinteger0..1Requested quantity.
parameterBackboneElement[]0..*Technical parameters (size, configuration, accessories…).
subjectReference(Patient | Group | Location | Device)1..1Mandatory. Beneficiary of the request, typically the patient.
encounterReference(Encounter)0..1Encounter in which the request was issued.
occurrence[x]dateTime | Period | Timing0..1Planned date / period / schedule of use.
authoredOndateTime0..1Request authoring date.
requesterReference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device)0..1Request author.
performerCodeableReference0..1Actor expected to fulfil the request (typically a DME supplier).
reasonCodeableReference[]0..*Clinical reason (linked Condition, SNOMED CT code…).
asNeededboolean0..1PRN ("as needed") request.
asNeededForCodeableConcept0..1Trigger condition for the PRN.
insuranceReference(Coverage | ClaimResponse)[]0..*Expected health coverage (CMS DME…).
supportingInfoReference(any)[]0..*Documents supporting the request (medical letter, imaging study…).
noteAnnotation[]0..*Additional notes, instructions to the supplier.
relevantHistoryReference(Provenance)[]0..*Change history of the request (audit trail).

status × intent

The status + intent pair is central to every FHIR Request. The Required bindings published in HL7 R5:

statusMeaning
draftDraft — not transmitted to the performer.
activeActive request.
on-holdHeld (validation, coverage, suspension).
revokedRevoked by the requester.
completedFulfilled (device delivered and accepted).
entered-in-errorErroneous entry.
unknownIndeterminate state.
intentMeaning
proposalSuggestion — not a commitment.
planPlan — intent to prescribe in the future.
directivePatient or guardian directive.
orderFirm order — the most common value.
original-orderOriginal order, source of replications.
reflex-orderAutomatic order triggered by another.
filler-orderOrder relayed by the filler (supplier).
instance-orderInstance of a generic order.
optionOption chosen from a predefined menu.

JSON example

Prescription of a lightweight manual wheelchair for a diabetic patient by Dr Adam Careful, to be delivered by Acme DME Supplies on 25 May 2026.

json devicerequest-example.json
{
  "resourceType": "DeviceRequest",
  "id": "example",
  "identifier": [{
    "system": "http://example.org/identifiers/devicerequest",
    "value": "DR-2026-187"
  }],
  "status": "active",
  "intent": "order",
  "priority": "routine",
  "code": {
    "concept": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "58938008",
        "display": "Wheelchair"
      }]
    }
  },
  "quantity": 1,
  "parameter": [{
    "code": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "60668009",
        "display": "Length"
      }]
    },
    "valueQuantity": {
      "value": 220,
      "unit": "mm",
      "system": "http://unitsofmeasure.org",
      "code": "mm"
    }
  }],
  "subject": { "reference": "Patient/example" },
  "encounter": { "reference": "Encounter/example" },
  "occurrenceDateTime": "2026-05-25T09:00:00+02:00",
  "authoredOn": "2026-05-14T14:00:00+02:00",
  "requester": { "reference": "Practitioner/example", "display": "Dr Adam Careful" },
  "performer": {
    "reference": "Organization/dme-supplier-1",
    "display": "Acme DME Supplies"
  },
  "reason": [{
    "concept": {
      "coding": [{
        "system": "http://snomed.info/sct",
        "code": "44054006",
        "display": "Diabetes mellitus type 2"
      }]
    }
  }],
  "note": [{
    "text": "Lightweight manual wheelchair, reclining backrest. Home delivery."
  }]
}

Worth pointing out in this example:

  • intent=order + status=active = firm order transmitted to the performer.
  • code SNOMED CT 58938008 = wheelchair: device requested by type, not by instance.
  • parameter specifies the expected length (220 mm) — useful when the physical instance doesn't exist yet and the supplier must configure.
  • reason is mandatory for medical justification toward payers (CMS DMEPOS).
  • performer points to the DME supplier: automated Request → supplier communication goes through the Da Vinci PDex IG in the US.

Common pitfalls

  • Missing intent1..1 cardinality. Modifier — mandatory to give the resource meaning.
  • Empty code1..1 cardinality. The requested device must be specified (by concept or by reference). Without code, the resource is invalid.
  • Missing subject1..1 cardinality. A request without a beneficiary is uninterpretable.
  • Mixing Device instance / DeviceDefinitioncode may point to a Reference(Device) (existing instance) or a Reference(DeviceDefinition) (product catalogue) or a concept. Pick one.
  • Confusion doNotPerform / status=revokeddoNotPerform=true = "order not to use this device" (rare but useful for advance directives). status=revoked = the order is cancelled.
  • Missing insurance for DMEPOS — in the US, a DeviceRequest without insurance is rejected by CMS Medicare. The Da Vinci PDex/Coverage profile requires the coverage link.
  • Past occurrence — typically a data-entry error. The device is requested for the future; a J-1 occurrence likely signals a retroactive workflow.
  • Device — the requested device, either generic concept or instance reference.
  • DeviceDispense — the dispense (delivery) of the device in response to the DeviceRequest.
  • DeviceUsage — the actual use of the device by the patient.
  • CarePlan — may contain activities based on a DeviceRequest.
  • ServiceRequest, MedicationRequest — other FHIR request resources with the same status × intent pattern.
  • Coverage — health coverage referenced by insurance.
  • Condition — pathology referenced by reason.

See also: the FHIR R5 index.