This page is part of the FHIR Specification (v3.5.0: R4 Ballot #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 R2
Orders and Observations Work Group | Maturity Level: 0 | Trial Use | Compartments: Not linked to any defined compartments |
This resource identifies a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device. Medical devices include durable (reusable) medical equipment, implantable devices, as well as disposable equipment used for diagnostic, treatment, and research for healthcare and public health. Non-medical devices may include items such as a machine, cellphone, computer, application, etc. This is the catalog description of a device (not the specific instance).
Note to balloters The Orders and Observations work-group has considerably changed this resource and wants to draw the attention of reviewers and implementers.
Device is an "instance", DeviceDefinition is a "kind"
Previously, the Device resource represented both an ‘instance’ of a device (e.g., an IM pin with serial number 123) and a ‘kind’ of device (e.g., 3ml syringes). To differentiate the kind of device from the instance of a device, several proposals have been put forth:
- Create separate resources for kind vs instance of Device (current choice)
- Create a Device profile to represent a Device Kind
- Reorder the elements and group by kind and instance within the Device resource.
More details on these options can be found here .
Representation multipart devices including UDI
Both Device and DeviceDefinition resources allow nesting of parts, each of them having a UDI representation.
- Change Device to support a device that has zero to one DIs (represent type) with multiple UDIs (instance).
- In addition to option 2 above, add an element to Device to be able reference other Devices resources. This would allow representation of a number of inter-related devices within a device system. This option is similar to the Device harmonization discussion below.
Harmonization between Personal Healthcare Devices (PHD) with Point of Care Device (POCD)
These resources aim to harmonize the representation of simpler Personal Healthcare Devices (PHD) with Point of Care Device (POCD) by merging DeviceComponent within Device and allow multiple component Devices reference the 'parent' device.
This resource is an administrative resource that tracks individual instances of a device and their location. It is referenced by other resources for recording which device performed an action such as a procedure or an observation, referenced when prescribing and dispensing devices for patient use or for ordering supplies, and used to record and transmit Unique Device Identifier (UDI) information about a device such as a patient's implant.
These are the device related resources
In FHIR, the "Device" is the "administrative" resource for the device (it does not change much and has manufacturer information etc.), whereas the DeviceComponent and DeviceMetric (which is really a kind of DeviceComponent) model the physical part, including operation status and is much more volatile. The physical composition of a Device is represented by the Devices pointing to their "parent".
Devices differ from medications because they are not "used up" - they remain active in a patient in an ongoing fashion. However, the specific boundary between medications and devices is defined at the implementation level and this standard does not enforce a boundary with the exception of devices that are implanted in a patient. The Medication resource should not be used to represent implanted devices.
This resource is referenced by Signature, Account, AdverseEvent, Appointment, AppointmentResponse, AuditEvent, CarePlan, ChargeItem, ChargeItemDefinition, Claim, Communication, CommunicationRequest, Composition, Consent, Contract, DetectedIssue, itself, DeviceMetric, DeviceRequest, DeviceUseStatement, DiagnosticReport, DocumentManifest, DocumentReference, EntryDefinition, ExplanationOfBenefit, Flag, Group, GuidanceResponse, ImagingStudy, Invoice, List, MeasureReport, Media, MedicationAdministration, MedicationDispense, MedicationRequest, MessageHeader, Observation, Procedure, Provenance, QuestionnaireResponse, RequestGroup, RiskAssessment, Schedule, Sequence, ServiceRequest, Specimen, SupplyDelivery, SupplyRequest, Task and UserSession
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | TU | DomainResource | Item used in healthcare Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | 0..* | Identifier | Instance identifier | |
definition | 0..1 | Reference(DeviceDefinition) | The reference to the definition for the device | |
udiCarrier | Σ | 0..* | BackboneElement | Unique Device Identifier (UDI) Barcode string |
deviceIdentifier | Σ | 0..1 | string | Mandatory fixed portion of UDI |
issuer | 0..1 | uri | UDI Issuing Organization | |
jurisdiction | 0..1 | uri | Regional UDI authority | |
carrierAIDC | Σ | 0..1 | base64Binary | UDI Machine Readable Barcode String |
carrierHRF | Σ | 0..1 | string | UDI Human Readable Barcode String |
entryType | 0..1 | code | barcode | rfid | manual + UDIEntryType (Required) | |
status | ?!Σ | 0..1 | code | active | inactive | entered-in-error | unknown FHIRDeviceStatus (Required) |
statusReason | 0..* | CodeableConcept | online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off FHIRDeviceStatusReason (Extensible) | |
distinctIdentificationCode | 0..1 | string | The distinct identification code for a biological product regulated as a device | |
manufacturer | 0..1 | string | Name of device manufacturer | |
manufactureDate | 0..1 | dateTime | Date when the device was made | |
expirationDate | 0..1 | dateTime | Date and time of expiry of this device (if applicable) | |
lotNumber | 0..1 | string | Lot number of manufacture | |
serialNumber | 0..1 | string | Serial number assigned by the manufacturer | |
deviceName | 0..* | BackboneElement | The name of the device as given by the manufacturer | |
name | 1..1 | string | The name of the device | |
type | 1..1 | code | udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other DeviceNameType (Required) | |
modelNumber | 0..1 | string | The model number for the device | |
partNumber | 0..1 | string | The part number of the device | |
type | 0..1 | CodeableConcept | The kind or type of device FHIR Device Types (Example) | |
specialization | 0..* | BackboneElement | The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication | |
systemType | 1..1 | CodeableConcept | The standard that is used to operate and communicate | |
version | 0..1 | string | The version of the standard that is used to operate and communicate | |
version | 0..* | BackboneElement | The actual design of the device or software version running on the device | |
type | 0..1 | CodeableConcept | The type of the device version | |
component | 0..1 | Identifier | A single component of the device version | |
value | 1..1 | string | The version text | |
property | 0..* | BackboneElement | The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties | |
type | 1..1 | CodeableConcept | Code that specifies the property DeviceDefinitionPropetyCode (Extensible) | |
valueQuanity | 0..* | Quantity | Property value as a quantity | |
valueCode | 0..* | CodeableConcept | Property value as a code, e.g., NTP4 (synced to NTP) | |
patient | 0..1 | Reference(Patient) | Patient to whom Device is affixed | |
owner | 0..1 | Reference(Organization) | Organization responsible for device | |
contact | 0..* | ContactPoint | Details for human/organization for support | |
location | 0..1 | Reference(Location) | Where the device is found | |
url | 0..1 | uri | Network address to contact device | |
note | 0..* | Annotation | Device notes and comments | |
safety | Σ | 0..* | CodeableConcept | Safety Characteristics of Device |
parent | 0..1 | Reference(Device) | The parent device | |
Documentation for this format |
UML Diagram (Legend)
XML Template
<Device xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Instance identifier --></identifier> <definition><!-- 0..1 Reference(DeviceDefinition) The reference to the definition for the device --></definition> <udiCarrier> <!-- 0..* Unique Device Identifier (UDI) Barcode string --> <deviceIdentifier value="[string]"/><!-- 0..1 Mandatory fixed portion of UDI --> <issuer value="[uri]"/><!-- 0..1 UDI Issuing Organization --> <jurisdiction value="[uri]"/><!-- 0..1 Regional UDI authority --> <carrierAIDC value="[base64Binary]"/><!-- 0..1 UDI Machine Readable Barcode String --> <carrierHRF value="[string]"/><!-- 0..1 UDI Human Readable Barcode String --> <entryType value="[code]"/><!-- 0..1 barcode | rfid | manual + --> </udiCarrier> <status value="[code]"/><!-- 0..1 active | inactive | entered-in-error | unknown --> <statusReason><!-- 0..* CodeableConcept online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off --></statusReason> <distinctIdentificationCode value="[string]"/><!-- 0..1 The distinct identification code for a biological product regulated as a device --> <manufacturer value="[string]"/><!-- 0..1 Name of device manufacturer --> <manufactureDate value="[dateTime]"/><!-- 0..1 Date when the device was made --> <expirationDate value="[dateTime]"/><!-- 0..1 Date and time of expiry of this device (if applicable) --> <lotNumber value="[string]"/><!-- 0..1 Lot number of manufacture --> <serialNumber value="[string]"/><!-- 0..1 Serial number assigned by the manufacturer --> <deviceName> <!-- 0..* The name of the device as given by the manufacturer --> <name value="[string]"/><!-- 1..1 The name of the device --> <type value="[code]"/><!-- 1..1 udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other --> </deviceName> <modelNumber value="[string]"/><!-- 0..1 The model number for the device --> <partNumber value="[string]"/><!-- 0..1 The part number of the device --> <type><!-- 0..1 CodeableConcept The kind or type of device --></type> <specialization> <!-- 0..* The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication --> <systemType><!-- 1..1 CodeableConcept The standard that is used to operate and communicate --></systemType> <version value="[string]"/><!-- 0..1 The version of the standard that is used to operate and communicate --> </specialization> <version> <!-- 0..* The actual design of the device or software version running on the device --> <type><!-- 0..1 CodeableConcept The type of the device version --></type> <component><!-- 0..1 Identifier A single component of the device version --></component> <value value="[string]"/><!-- 1..1 The version text --> </version> <property> <!-- 0..* The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties --> <type><!-- 1..1 CodeableConcept Code that specifies the property DeviceDefinitionPropetyCode (Extensible) --></type> <valueQuanity><!-- 0..* Quantity Property value as a quantity --></valueQuanity> <valueCode><!-- 0..* CodeableConcept Property value as a code, e.g., NTP4 (synced to NTP) --></valueCode> </property> <patient><!-- 0..1 Reference(Patient) Patient to whom Device is affixed --></patient> <owner><!-- 0..1 Reference(Organization) Organization responsible for device --></owner> <contact><!-- 0..* ContactPoint Details for human/organization for support --></contact> <location><!-- 0..1 Reference(Location) Where the device is found --></location> <url value="[uri]"/><!-- 0..1 Network address to contact device --> <note><!-- 0..* Annotation Device notes and comments --></note> <safety><!-- 0..* CodeableConcept Safety Characteristics of Device --></safety> <parent><!-- 0..1 Reference(Device) The parent device --></parent> </Device>
JSON Template
{ "resourceType" : "Device", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Instance identifier "definition" : { Reference(DeviceDefinition) }, // The reference to the definition for the device "udiCarrier" : [{ // Unique Device Identifier (UDI) Barcode string "deviceIdentifier" : "<string>", // Mandatory fixed portion of UDI "issuer" : "<uri>", // UDI Issuing Organization "jurisdiction" : "<uri>", // Regional UDI authority "carrierAIDC" : "<base64Binary>", // UDI Machine Readable Barcode String "carrierHRF" : "<string>", // UDI Human Readable Barcode String "entryType" : "<code>" // barcode | rfid | manual + }], "status" : "<code>", // active | inactive | entered-in-error | unknown "statusReason" : [{ CodeableConcept }], // online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off "distinctIdentificationCode" : "<string>", // The distinct identification code for a biological product regulated as a device "manufacturer" : "<string>", // Name of device manufacturer "manufactureDate" : "<dateTime>", // Date when the device was made "expirationDate" : "<dateTime>", // Date and time of expiry of this device (if applicable) "lotNumber" : "<string>", // Lot number of manufacture "serialNumber" : "<string>", // Serial number assigned by the manufacturer "deviceName" : [{ // The name of the device as given by the manufacturer "name" : "<string>", // R! The name of the device "type" : "<code>" // R! udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other }], "modelNumber" : "<string>", // The model number for the device "partNumber" : "<string>", // The part number of the device "type" : { CodeableConcept }, // The kind or type of device "specialization" : [{ // The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication "systemType" : { CodeableConcept }, // R! The standard that is used to operate and communicate "version" : "<string>" // The version of the standard that is used to operate and communicate }], "version" : [{ // The actual design of the device or software version running on the device "type" : { CodeableConcept }, // The type of the device version "component" : { Identifier }, // A single component of the device version "value" : "<string>" // R! The version text }], "property" : [{ // The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties "type" : { CodeableConcept }, // R! Code that specifies the property DeviceDefinitionPropetyCode (Extensible) "valueQuanity" : [{ Quantity }], // Property value as a quantity "valueCode" : [{ CodeableConcept }] // Property value as a code, e.g., NTP4 (synced to NTP) }], "patient" : { Reference(Patient) }, // Patient to whom Device is affixed "owner" : { Reference(Organization) }, // Organization responsible for device "contact" : [{ ContactPoint }], // Details for human/organization for support "location" : { Reference(Location) }, // Where the device is found "url" : "<uri>", // Network address to contact device "note" : [{ Annotation }], // Device notes and comments "safety" : [{ CodeableConcept }], // Safety Characteristics of Device "parent" : { Reference(Device) } // The parent device }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Device; 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:Device.identifier [ Identifier ], ... ; # 0..* Instance identifier fhir:Device.definition [ Reference(DeviceDefinition) ]; # 0..1 The reference to the definition for the device fhir:Device.udiCarrier [ # 0..* Unique Device Identifier (UDI) Barcode string fhir:Device.udiCarrier.deviceIdentifier [ string ]; # 0..1 Mandatory fixed portion of UDI fhir:Device.udiCarrier.issuer [ uri ]; # 0..1 UDI Issuing Organization fhir:Device.udiCarrier.jurisdiction [ uri ]; # 0..1 Regional UDI authority fhir:Device.udiCarrier.carrierAIDC [ base64Binary ]; # 0..1 UDI Machine Readable Barcode String fhir:Device.udiCarrier.carrierHRF [ string ]; # 0..1 UDI Human Readable Barcode String fhir:Device.udiCarrier.entryType [ code ]; # 0..1 barcode | rfid | manual + ], ...; fhir:Device.status [ code ]; # 0..1 active | inactive | entered-in-error | unknown fhir:Device.statusReason [ CodeableConcept ], ... ; # 0..* online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off fhir:Device.distinctIdentificationCode [ string ]; # 0..1 The distinct identification code for a biological product regulated as a device fhir:Device.manufacturer [ string ]; # 0..1 Name of device manufacturer fhir:Device.manufactureDate [ dateTime ]; # 0..1 Date when the device was made fhir:Device.expirationDate [ dateTime ]; # 0..1 Date and time of expiry of this device (if applicable) fhir:Device.lotNumber [ string ]; # 0..1 Lot number of manufacture fhir:Device.serialNumber [ string ]; # 0..1 Serial number assigned by the manufacturer fhir:Device.deviceName [ # 0..* The name of the device as given by the manufacturer fhir:Device.deviceName.name [ string ]; # 1..1 The name of the device fhir:Device.deviceName.type [ code ]; # 1..1 udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other ], ...; fhir:Device.modelNumber [ string ]; # 0..1 The model number for the device fhir:Device.partNumber [ string ]; # 0..1 The part number of the device fhir:Device.type [ CodeableConcept ]; # 0..1 The kind or type of device fhir:Device.specialization [ # 0..* The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication fhir:Device.specialization.systemType [ CodeableConcept ]; # 1..1 The standard that is used to operate and communicate fhir:Device.specialization.version [ string ]; # 0..1 The version of the standard that is used to operate and communicate ], ...; fhir:Device.version [ # 0..* The actual design of the device or software version running on the device fhir:Device.version.type [ CodeableConcept ]; # 0..1 The type of the device version fhir:Device.version.component [ Identifier ]; # 0..1 A single component of the device version fhir:Device.version.value [ string ]; # 1..1 The version text ], ...; fhir:Device.property [ # 0..* The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties fhir:Device.property.type [ CodeableConcept ]; # 1..1 Code that specifies the property DeviceDefinitionPropetyCode (Extensible) fhir:Device.property.valueQuanity [ Quantity ], ... ; # 0..* Property value as a quantity fhir:Device.property.valueCode [ CodeableConcept ], ... ; # 0..* Property value as a code, e.g., NTP4 (synced to NTP) ], ...; fhir:Device.patient [ Reference(Patient) ]; # 0..1 Patient to whom Device is affixed fhir:Device.owner [ Reference(Organization) ]; # 0..1 Organization responsible for device fhir:Device.contact [ ContactPoint ], ... ; # 0..* Details for human/organization for support fhir:Device.location [ Reference(Location) ]; # 0..1 Where the device is found fhir:Device.url [ uri ]; # 0..1 Network address to contact device fhir:Device.note [ Annotation ], ... ; # 0..* Device notes and comments fhir:Device.safety [ CodeableConcept ], ... ; # 0..* Safety Characteristics of Device fhir:Device.parent [ Reference(Device) ]; # 0..1 The parent device ]
Changes since R3
Device | |
Device.definition |
|
Device.udiCarrier |
|
Device.udiCarrier.deviceIdentifier |
|
Device.udiCarrier.issuer |
|
Device.udiCarrier.jurisdiction |
|
Device.udiCarrier.carrierAIDC |
|
Device.udiCarrier.carrierHRF |
|
Device.udiCarrier.entryType |
|
Device.statusReason |
|
Device.distinctIdentificationCode |
|
Device.serialNumber |
|
Device.deviceName |
|
Device.deviceName.name |
|
Device.deviceName.type |
|
Device.modelNumber |
|
Device.partNumber |
|
Device.specialization |
|
Device.specialization.systemType |
|
Device.specialization.version |
|
Device.version |
|
Device.version.type |
|
Device.version.component |
|
Device.version.value |
|
Device.property |
|
Device.property.type |
|
Device.property.valueQuanity |
|
Device.property.valueCode |
|
Device.parent |
|
Device.udi |
|
Device.model |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 9 tests of which 1 fail to execute. 8 fail round-trip testing and 8 r3 resources are invalid (0 errors).)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | TU | DomainResource | Item used in healthcare Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | 0..* | Identifier | Instance identifier | |
definition | 0..1 | Reference(DeviceDefinition) | The reference to the definition for the device | |
udiCarrier | Σ | 0..* | BackboneElement | Unique Device Identifier (UDI) Barcode string |
deviceIdentifier | Σ | 0..1 | string | Mandatory fixed portion of UDI |
issuer | 0..1 | uri | UDI Issuing Organization | |
jurisdiction | 0..1 | uri | Regional UDI authority | |
carrierAIDC | Σ | 0..1 | base64Binary | UDI Machine Readable Barcode String |
carrierHRF | Σ | 0..1 | string | UDI Human Readable Barcode String |
entryType | 0..1 | code | barcode | rfid | manual + UDIEntryType (Required) | |
status | ?!Σ | 0..1 | code | active | inactive | entered-in-error | unknown FHIRDeviceStatus (Required) |
statusReason | 0..* | CodeableConcept | online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off FHIRDeviceStatusReason (Extensible) | |
distinctIdentificationCode | 0..1 | string | The distinct identification code for a biological product regulated as a device | |
manufacturer | 0..1 | string | Name of device manufacturer | |
manufactureDate | 0..1 | dateTime | Date when the device was made | |
expirationDate | 0..1 | dateTime | Date and time of expiry of this device (if applicable) | |
lotNumber | 0..1 | string | Lot number of manufacture | |
serialNumber | 0..1 | string | Serial number assigned by the manufacturer | |
deviceName | 0..* | BackboneElement | The name of the device as given by the manufacturer | |
name | 1..1 | string | The name of the device | |
type | 1..1 | code | udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other DeviceNameType (Required) | |
modelNumber | 0..1 | string | The model number for the device | |
partNumber | 0..1 | string | The part number of the device | |
type | 0..1 | CodeableConcept | The kind or type of device FHIR Device Types (Example) | |
specialization | 0..* | BackboneElement | The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication | |
systemType | 1..1 | CodeableConcept | The standard that is used to operate and communicate | |
version | 0..1 | string | The version of the standard that is used to operate and communicate | |
version | 0..* | BackboneElement | The actual design of the device or software version running on the device | |
type | 0..1 | CodeableConcept | The type of the device version | |
component | 0..1 | Identifier | A single component of the device version | |
value | 1..1 | string | The version text | |
property | 0..* | BackboneElement | The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties | |
type | 1..1 | CodeableConcept | Code that specifies the property DeviceDefinitionPropetyCode (Extensible) | |
valueQuanity | 0..* | Quantity | Property value as a quantity | |
valueCode | 0..* | CodeableConcept | Property value as a code, e.g., NTP4 (synced to NTP) | |
patient | 0..1 | Reference(Patient) | Patient to whom Device is affixed | |
owner | 0..1 | Reference(Organization) | Organization responsible for device | |
contact | 0..* | ContactPoint | Details for human/organization for support | |
location | 0..1 | Reference(Location) | Where the device is found | |
url | 0..1 | uri | Network address to contact device | |
note | 0..* | Annotation | Device notes and comments | |
safety | Σ | 0..* | CodeableConcept | Safety Characteristics of Device |
parent | 0..1 | Reference(Device) | The parent device | |
Documentation for this format |
XML Template
<Device xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..* Identifier Instance identifier --></identifier> <definition><!-- 0..1 Reference(DeviceDefinition) The reference to the definition for the device --></definition> <udiCarrier> <!-- 0..* Unique Device Identifier (UDI) Barcode string --> <deviceIdentifier value="[string]"/><!-- 0..1 Mandatory fixed portion of UDI --> <issuer value="[uri]"/><!-- 0..1 UDI Issuing Organization --> <jurisdiction value="[uri]"/><!-- 0..1 Regional UDI authority --> <carrierAIDC value="[base64Binary]"/><!-- 0..1 UDI Machine Readable Barcode String --> <carrierHRF value="[string]"/><!-- 0..1 UDI Human Readable Barcode String --> <entryType value="[code]"/><!-- 0..1 barcode | rfid | manual + --> </udiCarrier> <status value="[code]"/><!-- 0..1 active | inactive | entered-in-error | unknown --> <statusReason><!-- 0..* CodeableConcept online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off --></statusReason> <distinctIdentificationCode value="[string]"/><!-- 0..1 The distinct identification code for a biological product regulated as a device --> <manufacturer value="[string]"/><!-- 0..1 Name of device manufacturer --> <manufactureDate value="[dateTime]"/><!-- 0..1 Date when the device was made --> <expirationDate value="[dateTime]"/><!-- 0..1 Date and time of expiry of this device (if applicable) --> <lotNumber value="[string]"/><!-- 0..1 Lot number of manufacture --> <serialNumber value="[string]"/><!-- 0..1 Serial number assigned by the manufacturer --> <deviceName> <!-- 0..* The name of the device as given by the manufacturer --> <name value="[string]"/><!-- 1..1 The name of the device --> <type value="[code]"/><!-- 1..1 udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other --> </deviceName> <modelNumber value="[string]"/><!-- 0..1 The model number for the device --> <partNumber value="[string]"/><!-- 0..1 The part number of the device --> <type><!-- 0..1 CodeableConcept The kind or type of device --></type> <specialization> <!-- 0..* The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication --> <systemType><!-- 1..1 CodeableConcept The standard that is used to operate and communicate --></systemType> <version value="[string]"/><!-- 0..1 The version of the standard that is used to operate and communicate --> </specialization> <version> <!-- 0..* The actual design of the device or software version running on the device --> <type><!-- 0..1 CodeableConcept The type of the device version --></type> <component><!-- 0..1 Identifier A single component of the device version --></component> <value value="[string]"/><!-- 1..1 The version text --> </version> <property> <!-- 0..* The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties --> <type><!-- 1..1 CodeableConcept Code that specifies the property DeviceDefinitionPropetyCode (Extensible) --></type> <valueQuanity><!-- 0..* Quantity Property value as a quantity --></valueQuanity> <valueCode><!-- 0..* CodeableConcept Property value as a code, e.g., NTP4 (synced to NTP) --></valueCode> </property> <patient><!-- 0..1 Reference(Patient) Patient to whom Device is affixed --></patient> <owner><!-- 0..1 Reference(Organization) Organization responsible for device --></owner> <contact><!-- 0..* ContactPoint Details for human/organization for support --></contact> <location><!-- 0..1 Reference(Location) Where the device is found --></location> <url value="[uri]"/><!-- 0..1 Network address to contact device --> <note><!-- 0..* Annotation Device notes and comments --></note> <safety><!-- 0..* CodeableConcept Safety Characteristics of Device --></safety> <parent><!-- 0..1 Reference(Device) The parent device --></parent> </Device>
JSON Template
{ "resourceType" : "Device", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : [{ Identifier }], // Instance identifier "definition" : { Reference(DeviceDefinition) }, // The reference to the definition for the device "udiCarrier" : [{ // Unique Device Identifier (UDI) Barcode string "deviceIdentifier" : "<string>", // Mandatory fixed portion of UDI "issuer" : "<uri>", // UDI Issuing Organization "jurisdiction" : "<uri>", // Regional UDI authority "carrierAIDC" : "<base64Binary>", // UDI Machine Readable Barcode String "carrierHRF" : "<string>", // UDI Human Readable Barcode String "entryType" : "<code>" // barcode | rfid | manual + }], "status" : "<code>", // active | inactive | entered-in-error | unknown "statusReason" : [{ CodeableConcept }], // online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off "distinctIdentificationCode" : "<string>", // The distinct identification code for a biological product regulated as a device "manufacturer" : "<string>", // Name of device manufacturer "manufactureDate" : "<dateTime>", // Date when the device was made "expirationDate" : "<dateTime>", // Date and time of expiry of this device (if applicable) "lotNumber" : "<string>", // Lot number of manufacture "serialNumber" : "<string>", // Serial number assigned by the manufacturer "deviceName" : [{ // The name of the device as given by the manufacturer "name" : "<string>", // R! The name of the device "type" : "<code>" // R! udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other }], "modelNumber" : "<string>", // The model number for the device "partNumber" : "<string>", // The part number of the device "type" : { CodeableConcept }, // The kind or type of device "specialization" : [{ // The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication "systemType" : { CodeableConcept }, // R! The standard that is used to operate and communicate "version" : "<string>" // The version of the standard that is used to operate and communicate }], "version" : [{ // The actual design of the device or software version running on the device "type" : { CodeableConcept }, // The type of the device version "component" : { Identifier }, // A single component of the device version "value" : "<string>" // R! The version text }], "property" : [{ // The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties "type" : { CodeableConcept }, // R! Code that specifies the property DeviceDefinitionPropetyCode (Extensible) "valueQuanity" : [{ Quantity }], // Property value as a quantity "valueCode" : [{ CodeableConcept }] // Property value as a code, e.g., NTP4 (synced to NTP) }], "patient" : { Reference(Patient) }, // Patient to whom Device is affixed "owner" : { Reference(Organization) }, // Organization responsible for device "contact" : [{ ContactPoint }], // Details for human/organization for support "location" : { Reference(Location) }, // Where the device is found "url" : "<uri>", // Network address to contact device "note" : [{ Annotation }], // Device notes and comments "safety" : [{ CodeableConcept }], // Safety Characteristics of Device "parent" : { Reference(Device) } // The parent device }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:Device; 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:Device.identifier [ Identifier ], ... ; # 0..* Instance identifier fhir:Device.definition [ Reference(DeviceDefinition) ]; # 0..1 The reference to the definition for the device fhir:Device.udiCarrier [ # 0..* Unique Device Identifier (UDI) Barcode string fhir:Device.udiCarrier.deviceIdentifier [ string ]; # 0..1 Mandatory fixed portion of UDI fhir:Device.udiCarrier.issuer [ uri ]; # 0..1 UDI Issuing Organization fhir:Device.udiCarrier.jurisdiction [ uri ]; # 0..1 Regional UDI authority fhir:Device.udiCarrier.carrierAIDC [ base64Binary ]; # 0..1 UDI Machine Readable Barcode String fhir:Device.udiCarrier.carrierHRF [ string ]; # 0..1 UDI Human Readable Barcode String fhir:Device.udiCarrier.entryType [ code ]; # 0..1 barcode | rfid | manual + ], ...; fhir:Device.status [ code ]; # 0..1 active | inactive | entered-in-error | unknown fhir:Device.statusReason [ CodeableConcept ], ... ; # 0..* online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off fhir:Device.distinctIdentificationCode [ string ]; # 0..1 The distinct identification code for a biological product regulated as a device fhir:Device.manufacturer [ string ]; # 0..1 Name of device manufacturer fhir:Device.manufactureDate [ dateTime ]; # 0..1 Date when the device was made fhir:Device.expirationDate [ dateTime ]; # 0..1 Date and time of expiry of this device (if applicable) fhir:Device.lotNumber [ string ]; # 0..1 Lot number of manufacture fhir:Device.serialNumber [ string ]; # 0..1 Serial number assigned by the manufacturer fhir:Device.deviceName [ # 0..* The name of the device as given by the manufacturer fhir:Device.deviceName.name [ string ]; # 1..1 The name of the device fhir:Device.deviceName.type [ code ]; # 1..1 udi-label-name | user-friendly-name | patient-reported-name | manufacturer-name | model-name | other ], ...; fhir:Device.modelNumber [ string ]; # 0..1 The model number for the device fhir:Device.partNumber [ string ]; # 0..1 The part number of the device fhir:Device.type [ CodeableConcept ]; # 0..1 The kind or type of device fhir:Device.specialization [ # 0..* The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication fhir:Device.specialization.systemType [ CodeableConcept ]; # 1..1 The standard that is used to operate and communicate fhir:Device.specialization.version [ string ]; # 0..1 The version of the standard that is used to operate and communicate ], ...; fhir:Device.version [ # 0..* The actual design of the device or software version running on the device fhir:Device.version.type [ CodeableConcept ]; # 0..1 The type of the device version fhir:Device.version.component [ Identifier ]; # 0..1 A single component of the device version fhir:Device.version.value [ string ]; # 1..1 The version text ], ...; fhir:Device.property [ # 0..* The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties fhir:Device.property.type [ CodeableConcept ]; # 1..1 Code that specifies the property DeviceDefinitionPropetyCode (Extensible) fhir:Device.property.valueQuanity [ Quantity ], ... ; # 0..* Property value as a quantity fhir:Device.property.valueCode [ CodeableConcept ], ... ; # 0..* Property value as a code, e.g., NTP4 (synced to NTP) ], ...; fhir:Device.patient [ Reference(Patient) ]; # 0..1 Patient to whom Device is affixed fhir:Device.owner [ Reference(Organization) ]; # 0..1 Organization responsible for device fhir:Device.contact [ ContactPoint ], ... ; # 0..* Details for human/organization for support fhir:Device.location [ Reference(Location) ]; # 0..1 Where the device is found fhir:Device.url [ uri ]; # 0..1 Network address to contact device fhir:Device.note [ Annotation ], ... ; # 0..* Device notes and comments fhir:Device.safety [ CodeableConcept ], ... ; # 0..* Safety Characteristics of Device fhir:Device.parent [ Reference(Device) ]; # 0..1 The parent device ]
Changes since Release 3
Device | |
Device.definition |
|
Device.udiCarrier |
|
Device.udiCarrier.deviceIdentifier |
|
Device.udiCarrier.issuer |
|
Device.udiCarrier.jurisdiction |
|
Device.udiCarrier.carrierAIDC |
|
Device.udiCarrier.carrierHRF |
|
Device.udiCarrier.entryType |
|
Device.statusReason |
|
Device.distinctIdentificationCode |
|
Device.serialNumber |
|
Device.deviceName |
|
Device.deviceName.name |
|
Device.deviceName.type |
|
Device.modelNumber |
|
Device.partNumber |
|
Device.specialization |
|
Device.specialization.systemType |
|
Device.specialization.version |
|
Device.version |
|
Device.version.type |
|
Device.version.component |
|
Device.version.value |
|
Device.property |
|
Device.property.type |
|
Device.property.valueQuanity |
|
Device.property.valueCode |
|
Device.parent |
|
Device.udi |
|
Device.model |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 9 tests of which 1 fail to execute. 8 fail round-trip testing and 8 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 dependency analysis
Path | Definition | Type | Reference |
---|---|---|---|
Device.udiCarrier.entryType | Codes to identify how UDI data was entered. | Required | UDIEntryType |
Device.status | The availability status of the device. | Required | FHIRDeviceStatus |
Device.statusReason | The availability status reason of the device. | Extensible | FHIRDeviceStatusReason |
Device.deviceName.type | The type of name the device is referred by. | Required | DeviceNameType |
Device.type | Codes to identify medical devices. | Example | FHIRDeviceTypes |
Nearly all devices are assigned a string of characters to represent one or more identifiers or codes, which are usually printed or affixed to the device using either barcodes or RFIDs. The identifier or code can come from the manufacturer (for example, a 'serial number', 'reference number', or 'catalog number'), various institution and registries. Any of these identifiers or codes assigned to the device can and should be recorded in the device resource. However, there can there can be confusion where to represent them in the resource because codes and identifiers are represented in FHIR as semantically distinct elements and because organizations may conflate the term 'code' for an identifier or 'identifier' for a code in their names.
The identifier
element is only intended for use when it's an actual identifier for a specific instance of a device. That would mean that each device would have a separate serial number and would be represented using this element - devices without serial numbers (for example, a box of syringes) would not. Concepts such as a reference number or catalog number or GTIN describe a code which represents a kind of device and are conveyed using the type
element. Some sources of standard codes for devices and translations within type
are listed below:
The International Medical Device Regulators Forum IMDRF UDI Working Group published UDI System for Medical Devices (Version 2.0) , the base specification for Unique Device Identifiers (UDI). The United States Food and Drug Administration has produced an implementation guide for Unique Device Identifiers (UDI) which implements the IMDRF specification and other jurisdictions may produce similar IMDRF implementation guides as well. The full UDI string that represents the barcode as printed on the packaging of the device or Automatic Identification and Data Capture (AIDC) representation is called the "UDI carrier". The UDI has 2 components*:
*non-UDI elements may also appear within the UDI carrier. **a "GTIN" (sometimes also called an EAN number) is a code developed by GS1 for the kind of device not an identifier for the device. A GTIN may appear on its own or it may appear in a UDI string as the DI component.
The DI of the UDI may be stored in a jurisdictional repository and used as the primary key to access other device information. For example, in the United States, the DI of the UDI is submitted in a device record to the Global Unique Device Identification Database (GUDID) . The UDI may identify an instance of a device uniquely (when the PI includes a serial number), or it may just identify the type of the device. The UDI is parsed into its constituent parts (DI, PI and other elements) by parsing rules developed by each Issuing Agency standard. Where the device has an assigned UDI, the other details carried in the resource (e.g., lot, expiration date, etc.) SHALL be consistent with the information encoded in the UDI string or registered in the local repository.
Best practice guidelines for transmitting UDI data using the Device resource dictate transmitting both the UDI Carrier and all components found within the UDI as described in Device UDI Mapping. Several examples are provided for further guidance.
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 |
device-name | string | A server defined search that may match any of the string fields in the Device.udi.name or Device.type.coding.display or Device.type.text | Device.type.text | Device.type.coding.display | |
identifier | token | Instance id from manufacturer, owner, and others | Device.identifier | |
location | reference | A location, where the resource is found | Device.location (Location) | |
manufacturer | string | The manufacturer of the device | Device.manufacturer | |
model | string | The model of the device | ||
organization | reference | The organization responsible for the device | Device.owner (Organization) | |
patient | reference | Patient information, if the resource is affixed to a person | Device.patient (Patient) | |
status | token | active | inactive | entered-in-error | unknown | Device.status | |
type | token | The type of the device | Device.type | |
udi-carrier | string | UDI Barcode (RFID or other technology) string either in HRF format or AIDC format converted to base64 string. | ||
udi-di | string | The udi Device Identifier (DI) | ||
url | uri | Network address to contact device | Device.url |