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.

Device — Medical device

From an implantable defibrillator to an insulin pump or a Bluetooth blood-pressure cuff: Device models any piece of medical equipment, with its unique identifier (UDI) and lifecycle.

Purpose of the resource

Device represents a type of a manufactured item used in the provision of healthcare without being substantially changed by that use. That covers: implants (prosthetics, defibrillators, stents), wearable medical devices (continuous insulin pumps, Holter monitors), heavy equipment (scanners, MRI, lasers, ventilators), connected consumer devices (scales, blood pressure cuffs, pulse oximeters), software medical devices (SaMD — Software as a Medical Device, including diagnostic AI), and secondary equipment (beds, wheelchairs).

Device is complemented by DeviceDefinition (the product model, the class). Where Device describes the physical instance (serial number XYZ, owned by hospital Y, implanted in patient Z), DeviceDefinition describes the generic product (model, manufacturer, certifications). See also DeviceRequest for the supply request.

Key fields

FieldTypeCardinalityRole
identifierIdentifier[]0..*Serial numbers, internal IDs, asset barcodes.
displayNamestring0..1User-facing display name.
definitionCodeableReference(DeviceDefinition)0..1Reference to the product model (DeviceDefinition).
udiCarrierBackboneElement[]0..*Unique Device Identifier — GS1/HIBCC barcode required by FDA + EU MDR.
statuscode0..1Administrative state: active, inactive, entered-in-error.
availabilityStatusCodeableConcept0..1Operational availability (available, lost, damaged…).
biologicalSourceEventIdentifier0..1Source donation / sampling identifier for biological devices (allograft…).
manufacturerstring0..1Manufacturer name (free text).
manufactureDatedateTime0..1Manufacturing date.
expirationDatedateTime0..1Expiration date (shelf life, end of validity).
lotNumberstring0..1Lot number for traceability.
serialNumberstring0..1Instance serial number.
nameBackboneElement[]0..*Device names (registered, manufacturer-name, user-friendly…).
modelNumberstring0..1Model reference.
partNumberstring0..1Spare-part reference.
categoryCodeableConcept[]0..*Broad category (implant, instrument, software…).
typeCodeableConcept[]0..*Specific type (implantable defibrillator, insulin pump… — SNOMED CT).
versionBackboneElement[]0..*Firmware / hardware / software versions.
specializationBackboneElement[]0..*Supported specialisations / protocols (IEEE 11073, MDC, DICOM…).
propertyBackboneElement[]0..*Technical characteristics (weight, dimensions, calibration…).
operationBackboneElement[]0..*Current operating mode (ON, OFF, sleep…).
associationBackboneElement[]0..*Association status to a human or another Device.
ownerReference(Organization)0..1Organisation owning the device.
contactContactPoint[]0..*Biomedical service contacts.
locationReference(Location)0..1Current physical location.
safetyCodeableConcept[]0..*Safety indicators (latex-free, MR-safe…).
parentReference(Device)0..1Parent device (sub-assembly of another device).

UDI Carrier

The UDI (Unique Device Identifier) is mandatory under FDA (US, since 2013) and the EU MDR/IVDR (Europe, since 2021) for most medical devices. The udiCarrier element carries it:

  • deviceIdentifier — GS1 (GTIN), HIBCC (HIBC) or ICCBBA code per issuer. Identifies the product model.
  • issuer — accredited identifier system (FDA, EU EUDAMED…).
  • jurisdiction — regulatory authority that sets the applicable UDI rule.
  • carrierAIDC — Automatic Identification and Data Capture encoding (2D barcode like DataMatrix).
  • carrierHRF — Human Readable Form (the visible barcode, GS1 parenthesised AI format).
  • entryType — entry method: barcode, rfid, manual, card, self-reported, electronic-transmission, unknown.

In the US, the UDI enables FDA GUDID (Global Unique Device Identification Database) reporting. In Europe, the equivalent is EUDAMED. A device without a valid UDI cannot be claimed for Medicare/CMS reimbursement and is rejected by US Core Device profiles.

JSON example

Endotronics Prizm 2030 implantable defibrillator, implanted in a patient, with FDA UDI, serial number, firmware version and owning organisation.

json device-example.json
{
  "resourceType": "Device",
  "id": "example-pacemaker",
  "identifier": [{
    "type": {
      "coding": [{
        "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
        "code": "SNO",
        "display": "Serial Number"
      }]
    },
    "value": "AC221"
  }],
  "displayName": "Endotronics Prizm 2030",
  "udiCarrier": [{
    "deviceIdentifier": "00844588003288",
    "issuer": "http://hl7.org/fhir/NamingSystem/fda-udi",
    "jurisdiction": "http://hl7.org/fhir/NamingSystem/fda",
    "carrierAIDC": "XwQGRDJANy6QQUAxMTk5OQ==",
    "carrierHRF": "(01)00844588003288(17)141120(10)7654321D(21)10987654d321",
    "entryType": "barcode"
  }],
  "status": "active",
  "availabilityStatus": {
    "coding": [{
      "system": "http://hl7.org/fhir/device-availability-status",
      "code": "available",
      "display": "Available"
    }]
  },
  "manufacturer": "Acme Devices, Inc",
  "manufactureDate": "2015-08-08",
  "expirationDate": "2027-11-20",
  "lotNumber": "1234-5678-90AB",
  "serialNumber": "AC221",
  "name": [{
    "value": "Prizm 2030",
    "type": "registered-name"
  }],
  "modelNumber": "PRZM-2030",
  "category": [{
    "coding": [{
      "system": "http://snomed.info/sct",
      "code": "118431008",
      "display": "Implant, device (physical object)"
    }]
  }],
  "type": [{
    "coding": [{
      "system": "http://snomed.info/sct",
      "code": "468063009",
      "display": "Implantable defibrillator, device (physical object)"
    }]
  }],
  "version": [{
    "type": { "text": "Firmware" },
    "value": "1.05"
  }],
  "patient": { "reference": "Patient/example" },
  "owner": { "reference": "Organization/2.16.840.1.113883.19.5" },
  "location": { "reference": "Location/example" }
}

Worth pointing out in this example:

  • The udiCarrier simultaneously holds the binary barcode (carrierAIDC) and the readable version (carrierHRF in GS1 AI format: (01) = GTIN, (17) = expiration date YYMMDD, (10) = lot, (21) = serial number).
  • The identifier typed SNO (Serial Number) reuses HL7 v2-0203 aligned with FHIR.
  • type SNOMED CT code 468063009 precisely designates an implantable defibrillator.
  • patient is populated because the device is implanted — that data is what makes the resource sensitive (PHI).

Common pitfalls

  • Missing UDI on an implant — FDA mandates the UDI from Class II onward. An implant Device without udiCarrier is rejected by US Core Implantable Device.
  • identifier vs udiCarrier.deviceIdentifier — not the same: identifier[type=SNO] is the serial number, udiCarrier.deviceIdentifier is the model code (GTIN). Both can coexist.
  • Patient data on a kind Device — a Device representing a generic type/model must never carry patient.
  • manufacturer in free text — defeats interoperable dedup. Prefer an Organization reference when the manufacturer is in the EHR.
  • Malformed UDI — the carrierHRF must follow the GS1 parenthesised AI or HIBCC format. (01)00844588003288(17)141120(10)7654321D(21)10987654d321 is conformant; without parentheses, rejected.
  • Confusion expirationDate / manufactureDate — expiration is the shelf life (sterile devices), not useful life end. For a durable implant, expirationDate may be absent.
  • No parent for a sub-module — an ultrasound transducer must point to its tower via parent for hierarchical traceability.
  • DeviceRequest — prescription / supply of a device to the patient.
  • DeviceMetric — technical measurements produced by a Device (alarm, calibration).
  • DeviceUsage, DeviceDispense — device usage and dispense.
  • DeviceDefinition — generic product model (vs Device which is the instance).
  • Observation — measured data (the result) may cite the source Device via device.
  • Patient, Organization, Location — typical attachments.

See also: the FHIR R5 index.