R6 Ballot (3rd Draft)

This page is part of the FHIR Specification v6.0.0-ballot3: Release 6 Ballot (3rd Draft) (see Ballot Notes). The current version is 5.0.0. For a full list of available versions, see the Directory of published versions

8.15 Resource Device - Content

Orders and Observations icon Work GroupMaturity Level: 2 Trial UseSecurity Category: Business Compartments: No defined compartments

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.

Note to Implementers: For an overview of this resource and others in the Device domain, also see the module page.

Note to Implementers: The owner has been removed from Device and is now included in DeviceAssociation as .relationship of the subject. Please comment on the revision if there are issues with removing the identification of individuals in the Device resource.

Note to Implementers: The following extensions will be added to a future Extension Pack release to cover removed Device elements including: mode, cycle, duration, gateway and endpoint. In addition, the following new extensions will be added: 1. For device alerts called device-alertDetection, which describes the alert detection activation states for the overall device. 2. For the source of the specification, device-conformsTo-source.

This is a base 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, which device was implanted in or explanted from a patient, dispensing a device to a patient for their use, managing inventory, or when requesting a specific device for a patient's use. 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. Medical devices may also include some types of software.

Non-medical devices may include items such as a machine, cellphone, computer, software application or algorithm, etc. In short, a Device can range from a tongue depressor to an MRI. The fields in the Device resource must be flexible enough to cover this range.

The resource may be used to document the Unique Device Identifier (UDI) and information about a device where appropriate or necessary according to local jurisdictions over time. Additional information about UDI is provided in the Unique Device Identifier (UDI) section.

Devices may be categorized and may be associated with one or more categories. Device category examples include, but are not limited to: active, communicating, durable medical equipment, home use, implantable, InVitro diagnostics, personal health, point-of-care, single use, re-usable, and software. See DeviceDefinition for detailed descriptions of devce categories.

When referring to a specific instance, even without specific instance details, Device is to be used, not a DeviceDefinition. The context of a data exchange indicates whether the data is representing a physical instance or a "kind", not the presence of instance data such as lot and serial numbers.

Some examples:

  1. In a Procedure, reporting the use of a pump for which we have no instance data - the pump is a physical instance. Whether the lot number (for example) is known or not, depends on the circumstance - in another Procedure or in an update of the Procedure, the lot number could be added. Hence the use of Device.
  2. When a device gets replaced by another device of the same type. In this case, a procedure indicates that one instance of the device is removed/explanted/discarded, and another instance is used. These are physical instances for which instance data might exist and be known, or not.

Note to Implementers: The module pages under development by Orders and Observations will further describe the variations of device use cases across the device resources, e.g., Device, DeviceDefinition, DeviceAssociation, DeviceDispense, DeviceMetric, DeviceRequest, and Device Usage.

There are several resources that can be used to represent device related events, requests or definitions. The following Resources should be used in the following manner:

  • Device (this resource)
  • DeviceDefinition - Describes a "kind" of device - not a specific instance of the device. A kind of device is frequently defined and documented by the manufacturer, reseller, or regulatory. Documentation would include any information that applies to all instances of a device, and may be published through a catalog. For example, the characteristics of a test analyzer, x-ray machine, or wheelchair.
  • DeviceMetric - Describes a measurement, calculation or setting capability of a device instance. A Device may include multiple device metrics, each yielding a different observation. The DeviceMetric models the properties of the Observations generated by and/or about the device such as whether or not the Observation is a setting. A DeviceMetric describes aspects of the device that may change over time. In contrast, the Device.property is used to capture inherent, essentially fixed, characteristics of the device, such as a "large" blood pressure cuff, the bore size of an MRI, the color of a lead. (Such static characteristics may also be recorded in DeviceDefinition.). The DeviceMetric models the properties of the Observations generated by the device, such as whether or not the Observation is a setting.
  • DeviceAssociation - Records the association of a device with a subject and/or operator (e.g. a Patient by ownership, or a Practitioner by usage during a procedure). DeviceAssociation should be used for ownenship/custiodianship.
  • DeviceAlert - Represents a single alert or alarm condition detected and signaled by a patient-connected health / medical device to create clinician’s awareness of a patient safety risk that needs to be addressed.
  • DeviceRequest/ - The workflow step to request/order the use of a device in a specific context.
  • DeviceDispense - The workflow step to manage the distribution of the device.
  • SupplyRequest - The workflow step to request/order supplies that would be needed beyond the devices in the DeviceRequest.
  • SupplyDelivery - The workflow step to manage the distribution of supplies that are ordered beyone the devices in the DeviceDispense.
  • DeviceUsage - To record the use of a device that is not covered by a procedure - i.e., patient reported use of a device.
  • NutritionOrder - An order for nutrition can request to a specific device to administer enteral feeding.
  • Observation - A measurement can be generated by many types of devices. It may be linked to and supplemented by data about the current structure and status of the device itself in one or more Device or DeviceMetric resources.
  • Procedure - A procedure can be performed using a variety of devices, or a device can be implanted or otherwise associated with a patient.
  • MedicationAdministration - A medication administration can be performed using a variety of devices.

In FHIR, the Device represents either the device in total, or a component of an encapsulating device when there is a need for individual tracking of a component. A Device as a component then points to the parent device it is part of. The top-level Device captures the actual data about the instance of the device and the instances of all its children that either provides identifying characteristics of the Device (including applicable UDI – unique device identification) and data that can vary dynamically by device, e.g., specific settings at a particular point in time.

Devices differ from medications because they are not "used up" - they remain active in or for a patient for a longer duration. They also may be re-used, particularly non-implanted devices and those used for diagnostics and procedures. Frequently, when a device is packaged with a medication, the ordering, dispense, and administration processes typically focus on the medication aspects and reference the device.

In the case of an infusion pump, while some actions are focused on the device (e.g., ordering to a room or maintaining the pump), the focus is as well on the medication while the device is used for administration. However, that separation is not always as clear and may be impacted by specific implementations. Regardless, the Medication resource should not be used to represent (implanted) devices, rather reference the relationship where an actual device needs to be tracked in addition to the medication. In some sense the Medication is analogous to the Observation generated by a Blood Pressure personal health device. The Observation resource contains the blood pressure values, units and the time stamp while the Device resource contains the manufacturer name, model number, serial number, firmware and hardware versions, exchange protocol information, any clock capabilities, etc.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device TU DomainResource Item used in healthcare
+ Rule: only one Device.name.display SHALL be true when there is more than one Device.name

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) value

.... deviceIdentifier Σ 1..1 string Mandatory fixed portion of UDI
.... deviceIdentifierSystem 0..1 uri The namespace for the device identifier value
.... issuer Σ 1..1 uri UDI Issuing Organization
.... jurisdiction 0..1 uri Regional UDI authority
.... carrierAIDC Σ 0..1 base64Binary UDI Machine Readable value
.... carrierHRF Σ 0..1 string UDI Human Readable Barcode String
.... entryType 0..1 code barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
Binding: UDI Entry Type (Required)
... availabilityStatus 0..1 CodeableConcept lost | damaged | destroyed | available
Binding: FHIR Device Availability Status (Extensible)
... biologicalSourceEvent 0..1 Identifier A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
... 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
... name C 0..* BackboneElement The name or names of the device as known to the manufacturer and/or patient

.... value Σ 1..1 string The term that names the device
.... type Σ 1..1 CodeableConcept registered-name | user-friendly-name | patient-reported-name
Binding: Device Name Type (Extensible)
.... display ?!ΣC 0..1 boolean The preferred device name
... modelNumber 0..1 string The manufacturer's model number for the device
... partNumber 0..1 string The part number or catalog number of the device
... category 0..* CodeableConcept Indicates a high-level grouping of the device
Binding: FHIR Device Category (Example)

... type 0..* CodeableConcept The kind or type of device
Binding: Device Type (Example)

... deviceVersion 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, e.g. manufacturer, approved, internal
Binding: Device Version Type (Example)
.... component 0..1 Identifier The hardware or software module of the device to which the version applies
.... installDate 0..1 dateTime The date the version was installed on the device
.... value 1..1 string The version text
... conformsTo 0..* BackboneElement Identifies the standards, specifications, or formal guidances for the capabilities supported by the device

.... category 0..1 CodeableConcept Describes the common type of the standard, specification, or formal guidance. communication | performance | measurement
Binding: Device Specification Category (Example)
.... specification 1..1 CodeableConcept Identifies the standard, specification, or formal guidance that the device adheres to
Binding: Device Specification Type (Example)
.... version 0..1 string Specific form or variant of the standard
... property 0..* BackboneElement Inherent, essentially fixed, characteristics of the device. e.g., time properties, size, material, etc.

.... type 1..1 CodeableConcept Code that specifies the property being represented
Binding: Device Property Type (Example)
.... value[x] 1..1 Value of the property
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueBoolean boolean
..... valueInteger integer
..... valueRange Range
..... valueAttachment Attachment
... additive 0..* BackboneElement Material added to a container device

.... type 1..1 CodeableReference(Substance) The additive substance
Binding: Substance Code (Example)
.... quantity 0..1 SimpleQuantity Quantity of additive substance within container
.... performer 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson) Entity adding substance to the container
.... performed 0..1 dateTime When the additive substance was added to the container
... contact 0..* ContactPoint Details for human/organization for support

... location 0..1 Reference(Location) Where the device is found
... note 0..* Annotation Device notes and comments

... safety Σ 0..* CodeableConcept Safety Characteristics of Device
Binding: Device Safety (Example)

... parent 0..1 Reference(Device) The higher level or encompassing device that this device is a logical part of

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Device (DomainResource)Unique instance identifiers assigned to a device by manufacturers other organizations or ownersidentifier : Identifier [0..*]The reference to the definition for the devicedefinition : Reference [0..1] « DeviceDefinition »The Device record status. This is not the status of the device like availability (this element modifies the meaning of other elements)status : code [0..1] « null (Strength=Required)FHIRDeviceStatus! »The availability of the deviceavailabilityStatus : CodeableConcept [0..1] « null (Strength=Extensible) FHIRDeviceAvailabilityStatus+ »A production identifier of the donation, collection, or pooling event from which biological material in this device was derivedbiologicalSourceEvent : Identifier [0..1]A name of the manufacturer or entity legally responsible for the devicemanufacturer : string [0..1]The date and time when the device was manufacturedmanufactureDate : dateTime [0..1]The date and time beyond which this device is no longer valid or should not be used (if applicable)expirationDate : dateTime [0..1]Lot number assigned by the manufacturerlotNumber : string [0..1]The serial number assigned by the organization when the device was manufacturedserialNumber : string [0..1]The manufacturer's model number for the devicemodelNumber : string [0..1]The part number or catalog number of the devicepartNumber : string [0..1]Devices may be associated with one or more categoriescategory : CodeableConcept [0..*] « null (Strength=Example)FHIRDeviceCategory?? »The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the devicetype : CodeableConcept [0..*] « null (Strength=Example)DeviceType?? »Contact details for an organization or a particular human that is responsible for the devicecontact : ContactPoint [0..*]The place where the device can be foundlocation : Reference [0..1] « Location »Descriptive information, usage information or implantation information that is not captured in an existing elementnote : Annotation [0..*]Provides additional safety characteristics about a medical device. For example devices containing latexsafety : CodeableConcept [0..*] « null (Strength=Example)DeviceSafety?? »The higher level or encompassing device that this device is a logical part ofparent : Reference [0..1] « Device »UdiCarrierThe device identifier (UDI-DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. The UDI-DI portion is placed on a device label or package. Note that the DeviceDefinition may include multiple UDI-DIs if it is sold in multiple jurisdictionsdeviceIdentifier : string [1..1]Establishes the namespace for the device identifier value that is an URL, OID, urn or uuiddeviceIdentifierSystem : uri [0..1]Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 1) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 2) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 3) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 4) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-diissuer : uri [1..1]The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udijurisdiction : uri [0..1]The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encodedcarrierAIDC : base64Binary [0..1]The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the devicecarrierHRF : string [0..1]A coded entry to indicate how the data was enteredentryType : code [0..1] « null (Strength=Required)UDIEntryType! »NameThe actual name that identifies the devicevalue : string [1..1]Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedNametype : CodeableConcept [1..1] « null (Strength=Extensible)DeviceNameType+ »Indicates the default or preferred name to be displayed (this element modifies the meaning of other elements)display : boolean [0..1] « This element has or is affected by some invariantsC »DeviceVersionThe type of the device version, e.g. manufacturer, approved, internaltype : CodeableConcept [0..1] « null (Strength=Example)DeviceVersionType?? »The hardware or software module of the device to which the version appliescomponent : Identifier [0..1]The date the version was installed on the deviceinstallDate : dateTime [0..1]The version textvalue : string [1..1]ConformsToDescribes the type of the standard, specification, or formal guidancecategory : CodeableConcept [0..1] « null (Strength=Example)DeviceSpecificationCategory?? »Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheresspecification : CodeableConcept [1..1] « null (Strength=Example)DeviceSpecificationType?? »Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other labelversion : string [0..1]PropertyCode that specifies the property, such as resolution, color, size, being representedtype : CodeableConcept [1..1] « null (Strength=Example)DeviceType?? »The value of the property specified by the associated property.type codevalue[x] : DataType [1..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Attachment »AdditiveThe type of the substance added to the container. This is represented as a concept from a code system or described in a Substance resourcetype : CodeableReference [1..1] « Substance; null (Strength=Example)SubstanceCode?? »The quantity of the additive substance in the container; may be volume, dimensions, or other appropriate measurements, depending on the container and additive substance typequantity : Quantity(SimpleQuantity) [0..1]The performer who adds the substance to the containerperformer : Reference [0..1] « Practitioner|PractitionerRole| Organization|Patient|RelatedPerson »Time when the additive substance was placed into the container by the performerperformed : dateTime [0..1]Unique Device Identifier (UDI) placed on a device label or package. Note that the Device may include multiple UDIs if it is sold in multiple jurisdictionsudiCarrier[0..*]This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinitionname[0..*]The actual design of the device or software version running on the devicedeviceVersion[0..*]Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standardsconformsTo[0..*]Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributesproperty[0..*]Material added to a container device (typically used in specimen collection or initial processing). The material may be added by the device manufacturer or by a different party subsequent to manufacturingadditive[0..*]

XML Template

<Device xmlns="http://hl7.org/fhir"> doco
 <!-- 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) value -->
  <deviceIdentifier value="[string]"/><!-- 1..1 Mandatory fixed portion of UDI -->
  <deviceIdentifierSystem value="[uri]"/><!-- 0..1 The namespace for the device identifier value -->
  <issuer value="[uri]"/><!-- 1..1 UDI Issuing Organization -->
  <jurisdiction value="[uri]"/><!-- 0..1 Regional UDI authority -->
  <carrierAIDC value="[base64Binary]"/><!-- 0..1 UDI Machine Readable value -->
  <carrierHRF value="[string]"/><!-- 0..1 UDI Human Readable Barcode String -->
  <entryType value="[code]"/><!-- 0..1 barcode | rfid | manual | card | self-reported | electronic-transmission | unknown -->
 </udiCarrier>
 <status value="[code]"/><!-- 0..1 active | inactive | entered-in-error -->
 <availabilityStatus><!-- 0..1 CodeableConcept lost | damaged | destroyed | available --></availabilityStatus>
 <biologicalSourceEvent><!-- 0..1 Identifier A production identifier of the donation, collection, or pooling event from which biological material in this device was derived --></biologicalSourceEvent>
 <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 -->
 <name>  <!-- I 0..* The name or names of the device as known to the manufacturer and/or patient -->
  <value value="[string]"/><!-- 1..1 The term that names the device -->
  <type><!-- 1..1 CodeableConcept registered-name | user-friendly-name | patient-reported-name --></type>
  <display value="[boolean]"/><!-- I 0..1 The preferred device name -->
 </name>
 <modelNumber value="[string]"/><!-- 0..1 The manufacturer's model number for the device -->
 <partNumber value="[string]"/><!-- 0..1 The part number or catalog number of the device -->
 <category><!-- 0..* CodeableConcept Indicates a high-level grouping of the device --></category>
 <type><!-- 0..* CodeableConcept The kind or type of device --></type>
 <deviceVersion>  <!-- 0..* The actual design of the device or software version running on the device -->
  <type><!-- 0..1 CodeableConcept The type of the device version, e.g. manufacturer, approved, internal --></type>
  <component><!-- 0..1 Identifier The hardware or software module of the device to which the version applies --></component>
  <installDate value="[dateTime]"/><!-- 0..1 The date the version was installed on the device -->
  <value value="[string]"/><!-- 1..1 The version text -->
 </deviceVersion>
 <conformsTo>  <!-- 0..* Identifies the standards, specifications, or formal guidances for the capabilities supported by the device -->
  <category><!-- 0..1 CodeableConcept Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement --></category>
  <specification><!-- 1..1 CodeableConcept Identifies the standard, specification, or formal guidance that the device adheres to --></specification>
  <version value="[string]"/><!-- 0..1 Specific form or variant of the standard -->
 </conformsTo>
 <property>  <!-- 0..* Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc. -->
  <type><!-- 1..1 CodeableConcept Code that specifies the property being represented --></type>
  <value[x]><!-- 1..1 Quantity|CodeableConcept|string|boolean|integer|Range|
    Attachment Value of the property --></value[x]>
 </property>
 <additive>  <!-- 0..* Material added to a container device -->
  <type><!-- 1..1 CodeableReference(Substance) The additive substance --></type>
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Quantity of additive substance within container --></quantity>
  <performer><!-- 0..1 Reference(Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Entity adding substance to the container --></performer>
  <performed value="[dateTime]"/><!-- 0..1 When the additive substance was added to the container -->
 </additive>
 <contact><!-- 0..* ContactPoint Details for human/organization for support --></contact>
 <location><!-- 0..1 Reference(Location) Where the device is found --></location>
 <note><!-- 0..* Annotation Device notes and comments --></note>
 <safety><!-- 0..* CodeableConcept Safety Characteristics of Device --></safety>
 <parent><!-- 0..1 Reference(Device) The higher level or encompassing device that this device is a logical part of --></parent>
</Device>

JSON Template

{doco
  "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) value
    "deviceIdentifier" : "<string>", // R!  Mandatory fixed portion of UDI
    "deviceIdentifierSystem" : "<uri>", // The namespace for the device identifier value
    "issuer" : "<uri>", // R!  UDI Issuing Organization
    "jurisdiction" : "<uri>", // Regional UDI authority
    "carrierAIDC" : "<base64Binary>", // UDI Machine Readable value
    "carrierHRF" : "<string>", // UDI Human Readable Barcode String
    "entryType" : "<code>" // barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
  }],
  "status" : "<code>", // active | inactive | entered-in-error
  "availabilityStatus" : { CodeableConcept }, // lost | damaged | destroyed | available
  "biologicalSourceEvent" : { Identifier }, // A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
  "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
  "name" : [{ // I The name or names of the device as known to the manufacturer and/or patient
    "value" : "<string>", // R!  The term that names the device
    "type" : { CodeableConcept }, // R!  registered-name | user-friendly-name | patient-reported-name
    "display" : <boolean> // I The preferred device name
  }],
  "modelNumber" : "<string>", // The manufacturer's model number for the device
  "partNumber" : "<string>", // The part number or catalog number of the device
  "category" : [{ CodeableConcept }], // Indicates a high-level grouping of the device
  "type" : [{ CodeableConcept }], // The kind or type of device
  "deviceVersion" : [{ // The actual design of the device or software version running on the device
    "type" : { CodeableConcept }, // The type of the device version, e.g. manufacturer, approved, internal
    "component" : { Identifier }, // The hardware or software module of the device to which the version applies
    "installDate" : "<dateTime>", // The date the version was installed on the device
    "value" : "<string>" // R!  The version text
  }],
  "conformsTo" : [{ // Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
    "category" : { CodeableConcept }, // Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement
    "specification" : { CodeableConcept }, // R!  Identifies the standard, specification, or formal guidance that the device adheres to
    "version" : "<string>" // Specific form or variant of the standard
  }],
  "property" : [{ // Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc.
    "type" : { CodeableConcept }, // R!  Code that specifies the property being represented
    // value[x]: Value of the property. One of these 7:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueBoolean" : <boolean>,
    "valueInteger" : <integer>,
    "valueRange" : { Range },
    "valueAttachment" : { Attachment }
  }],
  "additive" : [{ // Material added to a container device
    "type" : { CodeableReference(Substance) }, // R!  The additive substance
    "quantity" : { Quantity(SimpleQuantity) }, // Quantity of additive substance within container
    "performer" : { Reference(Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) }, // Entity adding substance to the container
    "performed" : "<dateTime>" // When the additive substance was added to the container
  }],
  "contact" : [{ ContactPoint }], // Details for human/organization for support
  "location" : { Reference(Location) }, // Where the device is found
  "note" : [{ Annotation }], // Device notes and comments
  "safety" : [{ CodeableConcept }], // Safety Characteristics of Device
  "parent" : { Reference(Device) } // The higher level or encompassing device that this device is a logical part of
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ 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:identifier  ( [ Identifier ] ... ) ; # 0..* Instance identifier
  fhir:definition [ Reference(DeviceDefinition) ] ; # 0..1 The reference to the definition for the device
  fhir:udiCarrier ( [ # 0..* Unique Device Identifier (UDI) value
    fhir:deviceIdentifier [ string ] ; # 1..1 Mandatory fixed portion of UDI
    fhir:deviceIdentifierSystem [ uri ] ; # 0..1 The namespace for the device identifier value
    fhir:issuer [ uri ] ; # 1..1 UDI Issuing Organization
    fhir:jurisdiction [ uri ] ; # 0..1 Regional UDI authority
    fhir:carrierAIDC [ base64Binary ] ; # 0..1 UDI Machine Readable value
    fhir:carrierHRF [ string ] ; # 0..1 UDI Human Readable Barcode String
    fhir:entryType [ code ] ; # 0..1 barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
  ] ... ) ;
  fhir:status [ code ] ; # 0..1 active | inactive | entered-in-error
  fhir:availabilityStatus [ CodeableConcept ] ; # 0..1 lost | damaged | destroyed | available
  fhir:biologicalSourceEvent [ Identifier ] ; # 0..1 A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
  fhir:manufacturer [ string ] ; # 0..1 Name of device manufacturer
  fhir:manufactureDate [ dateTime ] ; # 0..1 Date when the device was made
  fhir:expirationDate [ dateTime ] ; # 0..1 Date and time of expiry of this device (if applicable)
  fhir:lotNumber [ string ] ; # 0..1 Lot number of manufacture
  fhir:serialNumber [ string ] ; # 0..1 Serial number assigned by the manufacturer
  fhir:name ( [ # 0..* I The name or names of the device as known to the manufacturer and/or patient
    fhir:value [ string ] ; # 1..1 The term that names the device
    fhir:type [ CodeableConcept ] ; # 1..1 registered-name | user-friendly-name | patient-reported-name
    fhir:display [ boolean ] ; # 0..1 I The preferred device name
  ] ... ) ;
  fhir:modelNumber [ string ] ; # 0..1 The manufacturer's model number for the device
  fhir:partNumber [ string ] ; # 0..1 The part number or catalog number of the device
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Indicates a high-level grouping of the device
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* The kind or type of device
  fhir:deviceVersion ( [ # 0..* The actual design of the device or software version running on the device
    fhir:type [ CodeableConcept ] ; # 0..1 The type of the device version, e.g. manufacturer, approved, internal
    fhir:component [ Identifier ] ; # 0..1 The hardware or software module of the device to which the version applies
    fhir:installDate [ dateTime ] ; # 0..1 The date the version was installed on the device
    fhir:value [ string ] ; # 1..1 The version text
  ] ... ) ;
  fhir:conformsTo ( [ # 0..* Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
    fhir:category [ CodeableConcept ] ; # 0..1 Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement
    fhir:specification [ CodeableConcept ] ; # 1..1 Identifies the standard, specification, or formal guidance that the device adheres to
    fhir:version [ string ] ; # 0..1 Specific form or variant of the standard
  ] ... ) ;
  fhir:property ( [ # 0..* Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc.
    fhir:type [ CodeableConcept ] ; # 1..1 Code that specifies the property being represented
    # value[x] : 1..1 Value of the property. One of these 7
      fhir:value [  a fhir:Quantity ; Quantity ]
      fhir:value [  a fhir:CodeableConcept ; CodeableConcept ]
      fhir:value [  a fhir:string ; string ]
      fhir:value [  a fhir:boolean ; boolean ]
      fhir:value [  a fhir:integer ; integer ]
      fhir:value [  a fhir:Range ; Range ]
      fhir:value [  a fhir:Attachment ; Attachment ]
  ] ... ) ;
  fhir:additive ( [ # 0..* Material added to a container device
    fhir:type [ CodeableReference(Substance) ] ; # 1..1 The additive substance
    fhir:quantity [ Quantity(SimpleQuantity) ] ; # 0..1 Quantity of additive substance within container
    fhir:performer [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Entity adding substance to the container
    fhir:performed [ dateTime ] ; # 0..1 When the additive substance was added to the container
  ] ... ) ;
  fhir:contact  ( [ ContactPoint ] ... ) ; # 0..* Details for human/organization for support
  fhir:location [ Reference(Location) ] ; # 0..1 Where the device is found
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Device notes and comments
  fhir:safety  ( [ CodeableConcept ] ... ) ; # 0..* Safety Characteristics of Device
  fhir:parent [ Reference(Device) ] ; # 0..1 The higher level or encompassing device that this device is a logical part of
]

Changes from both R4 and R4B

Device
Device.udiCarrier.deviceIdentifier
  • Min Cardinality changed from 0 to 1
Device.udiCarrier.deviceIdentifierSystem
  • Added Element
Device.udiCarrier.issuer
  • Min Cardinality changed from 0 to 1
Device.udiCarrier.entryType
  • Add code electronic-transmission
Device.status
  • Remove code unknown
Device.availabilityStatus
  • Added Element
Device.biologicalSourceEvent
  • Added Element
Device.name
  • Renamed from deviceName to name
Device.name.value
  • Added Mandatory Element
Device.name.type
  • Moved from Device.deviceName to Device.name
  • Type changed from code to CodeableConcept
  • Change binding strength from required to extensible
Device.name.display
  • Added Element
Device.category
  • Added Element
Device.type
  • Max Cardinality changed from 1 to *
Device.deviceVersion
  • Added Element
Device.deviceVersion.type
  • Added Element
Device.deviceVersion.component
  • Added Element
Device.deviceVersion.installDate
  • Added Element
Device.deviceVersion.value
  • Added Mandatory Element
Device.conformsTo
  • Renamed from specialization to conformsTo
Device.conformsTo.category
  • Added Element
Device.conformsTo.specification
  • Added Mandatory Element
Device.conformsTo.version
  • Moved from Device.specialization to Device.conformsTo
Device.property.value[x]
  • Added Mandatory Element
Device.additive
  • Added Element
Device.additive.type
  • Added Mandatory Element
Device.additive.quantity
  • Added Element
Device.additive.performer
  • Added Element
Device.additive.performed
  • Added Element
Device.statusReason
  • Deleted (-> reason was removed. DeviceAssociation can be used)
Device.distinctIdentifier
  • Deleted
Device.deviceName.name
  • Deleted
Device.specialization.systemType
  • Deleted
Device.version
  • Deleted
Device.property.valueQuantity
  • Deleted
Device.property.valueCode
  • Deleted
Device.patient
  • Deleted (-> patient association is in DeviceAssociation)
Device.owner
  • Deleted
Device.url
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. Device TU DomainResource Item used in healthcare
+ Rule: only one Device.name.display SHALL be true when there is more than one Device.name

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) value

.... deviceIdentifier Σ 1..1 string Mandatory fixed portion of UDI
.... deviceIdentifierSystem 0..1 uri The namespace for the device identifier value
.... issuer Σ 1..1 uri UDI Issuing Organization
.... jurisdiction 0..1 uri Regional UDI authority
.... carrierAIDC Σ 0..1 base64Binary UDI Machine Readable value
.... carrierHRF Σ 0..1 string UDI Human Readable Barcode String
.... entryType 0..1 code barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
Binding: UDI Entry Type (Required)
... availabilityStatus 0..1 CodeableConcept lost | damaged | destroyed | available
Binding: FHIR Device Availability Status (Extensible)
... biologicalSourceEvent 0..1 Identifier A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
... 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
... name C 0..* BackboneElement The name or names of the device as known to the manufacturer and/or patient

.... value Σ 1..1 string The term that names the device
.... type Σ 1..1 CodeableConcept registered-name | user-friendly-name | patient-reported-name
Binding: Device Name Type (Extensible)
.... display ?!ΣC 0..1 boolean The preferred device name
... modelNumber 0..1 string The manufacturer's model number for the device
... partNumber 0..1 string The part number or catalog number of the device
... category 0..* CodeableConcept Indicates a high-level grouping of the device
Binding: FHIR Device Category (Example)

... type 0..* CodeableConcept The kind or type of device
Binding: Device Type (Example)

... deviceVersion 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, e.g. manufacturer, approved, internal
Binding: Device Version Type (Example)
.... component 0..1 Identifier The hardware or software module of the device to which the version applies
.... installDate 0..1 dateTime The date the version was installed on the device
.... value 1..1 string The version text
... conformsTo 0..* BackboneElement Identifies the standards, specifications, or formal guidances for the capabilities supported by the device

.... category 0..1 CodeableConcept Describes the common type of the standard, specification, or formal guidance. communication | performance | measurement
Binding: Device Specification Category (Example)
.... specification 1..1 CodeableConcept Identifies the standard, specification, or formal guidance that the device adheres to
Binding: Device Specification Type (Example)
.... version 0..1 string Specific form or variant of the standard
... property 0..* BackboneElement Inherent, essentially fixed, characteristics of the device. e.g., time properties, size, material, etc.

.... type 1..1 CodeableConcept Code that specifies the property being represented
Binding: Device Property Type (Example)
.... value[x] 1..1 Value of the property
..... valueQuantity Quantity
..... valueCodeableConcept CodeableConcept
..... valueString string
..... valueBoolean boolean
..... valueInteger integer
..... valueRange Range
..... valueAttachment Attachment
... additive 0..* BackboneElement Material added to a container device

.... type 1..1 CodeableReference(Substance) The additive substance
Binding: Substance Code (Example)
.... quantity 0..1 SimpleQuantity Quantity of additive substance within container
.... performer 0..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson) Entity adding substance to the container
.... performed 0..1 dateTime When the additive substance was added to the container
... contact 0..* ContactPoint Details for human/organization for support

... location 0..1 Reference(Location) Where the device is found
... note 0..* Annotation Device notes and comments

... safety Σ 0..* CodeableConcept Safety Characteristics of Device
Binding: Device Safety (Example)

... parent 0..1 Reference(Device) The higher level or encompassing device that this device is a logical part of

doco Documentation for this format icon

See the Extensions for this resource

UML Diagram (Legend)

Device (DomainResource)Unique instance identifiers assigned to a device by manufacturers other organizations or ownersidentifier : Identifier [0..*]The reference to the definition for the devicedefinition : Reference [0..1] « DeviceDefinition »The Device record status. This is not the status of the device like availability (this element modifies the meaning of other elements)status : code [0..1] « null (Strength=Required)FHIRDeviceStatus! »The availability of the deviceavailabilityStatus : CodeableConcept [0..1] « null (Strength=Extensible) FHIRDeviceAvailabilityStatus+ »A production identifier of the donation, collection, or pooling event from which biological material in this device was derivedbiologicalSourceEvent : Identifier [0..1]A name of the manufacturer or entity legally responsible for the devicemanufacturer : string [0..1]The date and time when the device was manufacturedmanufactureDate : dateTime [0..1]The date and time beyond which this device is no longer valid or should not be used (if applicable)expirationDate : dateTime [0..1]Lot number assigned by the manufacturerlotNumber : string [0..1]The serial number assigned by the organization when the device was manufacturedserialNumber : string [0..1]The manufacturer's model number for the devicemodelNumber : string [0..1]The part number or catalog number of the devicepartNumber : string [0..1]Devices may be associated with one or more categoriescategory : CodeableConcept [0..*] « null (Strength=Example)FHIRDeviceCategory?? »The kind or type of device. A device instance may have more than one type - in which case those are the types that apply to the specific instance of the devicetype : CodeableConcept [0..*] « null (Strength=Example)DeviceType?? »Contact details for an organization or a particular human that is responsible for the devicecontact : ContactPoint [0..*]The place where the device can be foundlocation : Reference [0..1] « Location »Descriptive information, usage information or implantation information that is not captured in an existing elementnote : Annotation [0..*]Provides additional safety characteristics about a medical device. For example devices containing latexsafety : CodeableConcept [0..*] « null (Strength=Example)DeviceSafety?? »The higher level or encompassing device that this device is a logical part ofparent : Reference [0..1] « Device »UdiCarrierThe device identifier (UDI-DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device. The UDI-DI portion is placed on a device label or package. Note that the DeviceDefinition may include multiple UDI-DIs if it is sold in multiple jurisdictionsdeviceIdentifier : string [1..1]Establishes the namespace for the device identifier value that is an URL, OID, urn or uuiddeviceIdentifierSystem : uri [0..1]Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include: 1) GS1: http://hl7.org/fhir/NamingSystem/gs1-di, 2) HIBCC: http://hl7.org/fhir/NamingSystem/hibcc-diI, 3) ICCBBA for blood containers: http://hl7.org/fhir/NamingSystem/iccbba-blood-di, 4) ICCBA for other devices: http://hl7.org/fhir/NamingSystem/iccbba-other-di # Informationsstelle für Arzneispezialitäten (IFA GmbH) (EU only): http://hl7.org/fhir/NamingSystem/ifa-gmbh-diissuer : uri [1..1]The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/us-fda-udi or in the European Union by the European Commission http://hl7.org/fhir/NamingSystem/eu-ec-udijurisdiction : uri [0..1]The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encodedcarrierAIDC : base64Binary [0..1]The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the devicecarrierHRF : string [0..1]A coded entry to indicate how the data was enteredentryType : code [0..1] « null (Strength=Required)UDIEntryType! »NameThe actual name that identifies the devicevalue : string [1..1]Indicates the kind of name. RegisteredName | UserFriendlyName | PatientReportedNametype : CodeableConcept [1..1] « null (Strength=Extensible)DeviceNameType+ »Indicates the default or preferred name to be displayed (this element modifies the meaning of other elements)display : boolean [0..1] « This element has or is affected by some invariantsC »DeviceVersionThe type of the device version, e.g. manufacturer, approved, internaltype : CodeableConcept [0..1] « null (Strength=Example)DeviceVersionType?? »The hardware or software module of the device to which the version appliescomponent : Identifier [0..1]The date the version was installed on the deviceinstallDate : dateTime [0..1]The version textvalue : string [1..1]ConformsToDescribes the type of the standard, specification, or formal guidancecategory : CodeableConcept [0..1] « null (Strength=Example)DeviceSpecificationCategory?? »Code that identifies the specific standard, specification, protocol, formal guidance, regulation, legislation, or certification scheme to which the device adheresspecification : CodeableConcept [1..1] « null (Strength=Example)DeviceSpecificationType?? »Identifies the specific form or variant of the standard, specification, or formal guidance. This may be a 'version number', release, document edition, publication year, or other labelversion : string [0..1]PropertyCode that specifies the property, such as resolution, color, size, being representedtype : CodeableConcept [1..1] « null (Strength=Example)DeviceType?? »The value of the property specified by the associated property.type codevalue[x] : DataType [1..1] « Quantity|CodeableConcept|string|boolean| integer|Range|Attachment »AdditiveThe type of the substance added to the container. This is represented as a concept from a code system or described in a Substance resourcetype : CodeableReference [1..1] « Substance; null (Strength=Example)SubstanceCode?? »The quantity of the additive substance in the container; may be volume, dimensions, or other appropriate measurements, depending on the container and additive substance typequantity : Quantity(SimpleQuantity) [0..1]The performer who adds the substance to the containerperformer : Reference [0..1] « Practitioner|PractitionerRole| Organization|Patient|RelatedPerson »Time when the additive substance was placed into the container by the performerperformed : dateTime [0..1]Unique Device Identifier (UDI) placed on a device label or package. Note that the Device may include multiple UDIs if it is sold in multiple jurisdictionsudiCarrier[0..*]This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinitionname[0..*]The actual design of the device or software version running on the devicedeviceVersion[0..*]Identifies the standards, specifications, or formal guidances for the capabilities supported by the device. The device may be certified as conformant to these specifications e.g., communication, performance, process, measurement, or specialization standardsconformsTo[0..*]Static or essentially fixed characteristics or features of the device (e.g., time or timing attributes, resolution, accuracy, intended use or instructions for use, and physical attributes) that are not otherwise captured in more specific attributesproperty[0..*]Material added to a container device (typically used in specimen collection or initial processing). The material may be added by the device manufacturer or by a different party subsequent to manufacturingadditive[0..*]

XML Template

<Device xmlns="http://hl7.org/fhir"> doco
 <!-- 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) value -->
  <deviceIdentifier value="[string]"/><!-- 1..1 Mandatory fixed portion of UDI -->
  <deviceIdentifierSystem value="[uri]"/><!-- 0..1 The namespace for the device identifier value -->
  <issuer value="[uri]"/><!-- 1..1 UDI Issuing Organization -->
  <jurisdiction value="[uri]"/><!-- 0..1 Regional UDI authority -->
  <carrierAIDC value="[base64Binary]"/><!-- 0..1 UDI Machine Readable value -->
  <carrierHRF value="[string]"/><!-- 0..1 UDI Human Readable Barcode String -->
  <entryType value="[code]"/><!-- 0..1 barcode | rfid | manual | card | self-reported | electronic-transmission | unknown -->
 </udiCarrier>
 <status value="[code]"/><!-- 0..1 active | inactive | entered-in-error -->
 <availabilityStatus><!-- 0..1 CodeableConcept lost | damaged | destroyed | available --></availabilityStatus>
 <biologicalSourceEvent><!-- 0..1 Identifier A production identifier of the donation, collection, or pooling event from which biological material in this device was derived --></biologicalSourceEvent>
 <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 -->
 <name>  <!-- I 0..* The name or names of the device as known to the manufacturer and/or patient -->
  <value value="[string]"/><!-- 1..1 The term that names the device -->
  <type><!-- 1..1 CodeableConcept registered-name | user-friendly-name | patient-reported-name --></type>
  <display value="[boolean]"/><!-- I 0..1 The preferred device name -->
 </name>
 <modelNumber value="[string]"/><!-- 0..1 The manufacturer's model number for the device -->
 <partNumber value="[string]"/><!-- 0..1 The part number or catalog number of the device -->
 <category><!-- 0..* CodeableConcept Indicates a high-level grouping of the device --></category>
 <type><!-- 0..* CodeableConcept The kind or type of device --></type>
 <deviceVersion>  <!-- 0..* The actual design of the device or software version running on the device -->
  <type><!-- 0..1 CodeableConcept The type of the device version, e.g. manufacturer, approved, internal --></type>
  <component><!-- 0..1 Identifier The hardware or software module of the device to which the version applies --></component>
  <installDate value="[dateTime]"/><!-- 0..1 The date the version was installed on the device -->
  <value value="[string]"/><!-- 1..1 The version text -->
 </deviceVersion>
 <conformsTo>  <!-- 0..* Identifies the standards, specifications, or formal guidances for the capabilities supported by the device -->
  <category><!-- 0..1 CodeableConcept Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement --></category>
  <specification><!-- 1..1 CodeableConcept Identifies the standard, specification, or formal guidance that the device adheres to --></specification>
  <version value="[string]"/><!-- 0..1 Specific form or variant of the standard -->
 </conformsTo>
 <property>  <!-- 0..* Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc. -->
  <type><!-- 1..1 CodeableConcept Code that specifies the property being represented --></type>
  <value[x]><!-- 1..1 Quantity|CodeableConcept|string|boolean|integer|Range|
    Attachment Value of the property --></value[x]>
 </property>
 <additive>  <!-- 0..* Material added to a container device -->
  <type><!-- 1..1 CodeableReference(Substance) The additive substance --></type>
  <quantity><!-- 0..1 Quantity(SimpleQuantity) Quantity of additive substance within container --></quantity>
  <performer><!-- 0..1 Reference(Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) Entity adding substance to the container --></performer>
  <performed value="[dateTime]"/><!-- 0..1 When the additive substance was added to the container -->
 </additive>
 <contact><!-- 0..* ContactPoint Details for human/organization for support --></contact>
 <location><!-- 0..1 Reference(Location) Where the device is found --></location>
 <note><!-- 0..* Annotation Device notes and comments --></note>
 <safety><!-- 0..* CodeableConcept Safety Characteristics of Device --></safety>
 <parent><!-- 0..1 Reference(Device) The higher level or encompassing device that this device is a logical part of --></parent>
</Device>

JSON Template

{doco
  "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) value
    "deviceIdentifier" : "<string>", // R!  Mandatory fixed portion of UDI
    "deviceIdentifierSystem" : "<uri>", // The namespace for the device identifier value
    "issuer" : "<uri>", // R!  UDI Issuing Organization
    "jurisdiction" : "<uri>", // Regional UDI authority
    "carrierAIDC" : "<base64Binary>", // UDI Machine Readable value
    "carrierHRF" : "<string>", // UDI Human Readable Barcode String
    "entryType" : "<code>" // barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
  }],
  "status" : "<code>", // active | inactive | entered-in-error
  "availabilityStatus" : { CodeableConcept }, // lost | damaged | destroyed | available
  "biologicalSourceEvent" : { Identifier }, // A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
  "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
  "name" : [{ // I The name or names of the device as known to the manufacturer and/or patient
    "value" : "<string>", // R!  The term that names the device
    "type" : { CodeableConcept }, // R!  registered-name | user-friendly-name | patient-reported-name
    "display" : <boolean> // I The preferred device name
  }],
  "modelNumber" : "<string>", // The manufacturer's model number for the device
  "partNumber" : "<string>", // The part number or catalog number of the device
  "category" : [{ CodeableConcept }], // Indicates a high-level grouping of the device
  "type" : [{ CodeableConcept }], // The kind or type of device
  "deviceVersion" : [{ // The actual design of the device or software version running on the device
    "type" : { CodeableConcept }, // The type of the device version, e.g. manufacturer, approved, internal
    "component" : { Identifier }, // The hardware or software module of the device to which the version applies
    "installDate" : "<dateTime>", // The date the version was installed on the device
    "value" : "<string>" // R!  The version text
  }],
  "conformsTo" : [{ // Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
    "category" : { CodeableConcept }, // Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement
    "specification" : { CodeableConcept }, // R!  Identifies the standard, specification, or formal guidance that the device adheres to
    "version" : "<string>" // Specific form or variant of the standard
  }],
  "property" : [{ // Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc.
    "type" : { CodeableConcept }, // R!  Code that specifies the property being represented
    // value[x]: Value of the property. One of these 7:
    "valueQuantity" : { Quantity },
    "valueCodeableConcept" : { CodeableConcept },
    "valueString" : "<string>",
    "valueBoolean" : <boolean>,
    "valueInteger" : <integer>,
    "valueRange" : { Range },
    "valueAttachment" : { Attachment }
  }],
  "additive" : [{ // Material added to a container device
    "type" : { CodeableReference(Substance) }, // R!  The additive substance
    "quantity" : { Quantity(SimpleQuantity) }, // Quantity of additive substance within container
    "performer" : { Reference(Organization|Patient|Practitioner|
    PractitionerRole|RelatedPerson) }, // Entity adding substance to the container
    "performed" : "<dateTime>" // When the additive substance was added to the container
  }],
  "contact" : [{ ContactPoint }], // Details for human/organization for support
  "location" : { Reference(Location) }, // Where the device is found
  "note" : [{ Annotation }], // Device notes and comments
  "safety" : [{ CodeableConcept }], // Safety Characteristics of Device
  "parent" : { Reference(Device) } // The higher level or encompassing device that this device is a logical part of
}

Turtle Template

@prefix fhir: <http://hl7.org/fhir/> .doco


[ 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:identifier  ( [ Identifier ] ... ) ; # 0..* Instance identifier
  fhir:definition [ Reference(DeviceDefinition) ] ; # 0..1 The reference to the definition for the device
  fhir:udiCarrier ( [ # 0..* Unique Device Identifier (UDI) value
    fhir:deviceIdentifier [ string ] ; # 1..1 Mandatory fixed portion of UDI
    fhir:deviceIdentifierSystem [ uri ] ; # 0..1 The namespace for the device identifier value
    fhir:issuer [ uri ] ; # 1..1 UDI Issuing Organization
    fhir:jurisdiction [ uri ] ; # 0..1 Regional UDI authority
    fhir:carrierAIDC [ base64Binary ] ; # 0..1 UDI Machine Readable value
    fhir:carrierHRF [ string ] ; # 0..1 UDI Human Readable Barcode String
    fhir:entryType [ code ] ; # 0..1 barcode | rfid | manual | card | self-reported | electronic-transmission | unknown
  ] ... ) ;
  fhir:status [ code ] ; # 0..1 active | inactive | entered-in-error
  fhir:availabilityStatus [ CodeableConcept ] ; # 0..1 lost | damaged | destroyed | available
  fhir:biologicalSourceEvent [ Identifier ] ; # 0..1 A production identifier of the donation, collection, or pooling event from which biological material in this device was derived
  fhir:manufacturer [ string ] ; # 0..1 Name of device manufacturer
  fhir:manufactureDate [ dateTime ] ; # 0..1 Date when the device was made
  fhir:expirationDate [ dateTime ] ; # 0..1 Date and time of expiry of this device (if applicable)
  fhir:lotNumber [ string ] ; # 0..1 Lot number of manufacture
  fhir:serialNumber [ string ] ; # 0..1 Serial number assigned by the manufacturer
  fhir:name ( [ # 0..* I The name or names of the device as known to the manufacturer and/or patient
    fhir:value [ string ] ; # 1..1 The term that names the device
    fhir:type [ CodeableConcept ] ; # 1..1 registered-name | user-friendly-name | patient-reported-name
    fhir:display [ boolean ] ; # 0..1 I The preferred device name
  ] ... ) ;
  fhir:modelNumber [ string ] ; # 0..1 The manufacturer's model number for the device
  fhir:partNumber [ string ] ; # 0..1 The part number or catalog number of the device
  fhir:category  ( [ CodeableConcept ] ... ) ; # 0..* Indicates a high-level grouping of the device
  fhir:type  ( [ CodeableConcept ] ... ) ; # 0..* The kind or type of device
  fhir:deviceVersion ( [ # 0..* The actual design of the device or software version running on the device
    fhir:type [ CodeableConcept ] ; # 0..1 The type of the device version, e.g. manufacturer, approved, internal
    fhir:component [ Identifier ] ; # 0..1 The hardware or software module of the device to which the version applies
    fhir:installDate [ dateTime ] ; # 0..1 The date the version was installed on the device
    fhir:value [ string ] ; # 1..1 The version text
  ] ... ) ;
  fhir:conformsTo ( [ # 0..* Identifies the standards, specifications, or formal guidances for the capabilities supported by the device
    fhir:category [ CodeableConcept ] ; # 0..1 Describes the common type of the standard, specification, or formal guidance.  communication | performance | measurement
    fhir:specification [ CodeableConcept ] ; # 1..1 Identifies the standard, specification, or formal guidance that the device adheres to
    fhir:version [ string ] ; # 0..1 Specific form or variant of the standard
  ] ... ) ;
  fhir:property ( [ # 0..* Inherent, essentially fixed, characteristics of the device.  e.g., time properties, size, material, etc.
    fhir:type [ CodeableConcept ] ; # 1..1 Code that specifies the property being represented
    # value[x] : 1..1 Value of the property. One of these 7
      fhir:value [  a fhir:Quantity ; Quantity ]
      fhir:value [  a fhir:CodeableConcept ; CodeableConcept ]
      fhir:value [  a fhir:string ; string ]
      fhir:value [  a fhir:boolean ; boolean ]
      fhir:value [  a fhir:integer ; integer ]
      fhir:value [  a fhir:Range ; Range ]
      fhir:value [  a fhir:Attachment ; Attachment ]
  ] ... ) ;
  fhir:additive ( [ # 0..* Material added to a container device
    fhir:type [ CodeableReference(Substance) ] ; # 1..1 The additive substance
    fhir:quantity [ Quantity(SimpleQuantity) ] ; # 0..1 Quantity of additive substance within container
    fhir:performer [ Reference(Organization|Patient|Practitioner|PractitionerRole|RelatedPerson) ] ; # 0..1 Entity adding substance to the container
    fhir:performed [ dateTime ] ; # 0..1 When the additive substance was added to the container
  ] ... ) ;
  fhir:contact  ( [ ContactPoint ] ... ) ; # 0..* Details for human/organization for support
  fhir:location [ Reference(Location) ] ; # 0..1 Where the device is found
  fhir:note  ( [ Annotation ] ... ) ; # 0..* Device notes and comments
  fhir:safety  ( [ CodeableConcept ] ... ) ; # 0..* Safety Characteristics of Device
  fhir:parent [ Reference(Device) ] ; # 0..1 The higher level or encompassing device that this device is a logical part of
]

Changes from both R4 and R4B

Device
Device.udiCarrier.deviceIdentifier
  • Min Cardinality changed from 0 to 1
Device.udiCarrier.deviceIdentifierSystem
  • Added Element
Device.udiCarrier.issuer
  • Min Cardinality changed from 0 to 1
Device.udiCarrier.entryType
  • Add code electronic-transmission
Device.status
  • Remove code unknown
Device.availabilityStatus
  • Added Element
Device.biologicalSourceEvent
  • Added Element
Device.name
  • Renamed from deviceName to name
Device.name.value
  • Added Mandatory Element
Device.name.type
  • Moved from Device.deviceName to Device.name
  • Type changed from code to CodeableConcept
  • Change binding strength from required to extensible
Device.name.display
  • Added Element
Device.category
  • Added Element
Device.type
  • Max Cardinality changed from 1 to *
Device.deviceVersion
  • Added Element
Device.deviceVersion.type
  • Added Element
Device.deviceVersion.component
  • Added Element
Device.deviceVersion.installDate
  • Added Element
Device.deviceVersion.value
  • Added Mandatory Element
Device.conformsTo
  • Renamed from specialization to conformsTo
Device.conformsTo.category
  • Added Element
Device.conformsTo.specification
  • Added Mandatory Element
Device.conformsTo.version
  • Moved from Device.specialization to Device.conformsTo
Device.property.value[x]
  • Added Mandatory Element
Device.additive
  • Added Element
Device.additive.type
  • Added Mandatory Element
Device.additive.quantity
  • Added Element
Device.additive.performer
  • Added Element
Device.additive.performed
  • Added Element
Device.statusReason
  • Deleted (-> reason was removed. DeviceAssociation can be used)
Device.distinctIdentifier
  • Deleted
Device.deviceName.name
  • Deleted
Device.specialization.systemType
  • Deleted
Device.version
  • Deleted
Device.property.valueQuantity
  • Deleted
Device.property.valueCode
  • Deleted
Device.patient
  • Deleted (-> patient association is in DeviceAssociation)
Device.owner
  • Deleted
Device.url
  • Deleted

See the Full Difference for further information

This analysis is available for R4 as XML or JSON and for R4B as XML or JSON.

 

Additional definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions, the spreadsheet version & the dependency analysis

Path ValueSet Type Documentation
Device.udiCarrier.entryType UDIEntryType Required

Codes to identify how UDI data was entered.

Device.status FHIRDeviceStatus Required

The status of the Device record.

Device.availabilityStatus FHIRDeviceAvailabilityStatus Extensible

The availability status of the device.

Device.name.type DeviceNameType Extensible

The type of name the device is referred by.

Device.category FHIRDeviceCategory Example

The association state of the device.

Device.type DeviceType Example

Codes used to identify medical devices. Includes concepts from SNOMED CT (http://www.snomed.org/) where concept is-a 49062001 (Device) and is provided as a suggestive example.

Device.deviceVersion.type DeviceVersionType Example

Describes the type of version

Device.conformsTo.category DeviceSpecificationCategory (a valid code from FHIR Device Specialization Category) Example

The kind of standards used by the device.

Device.conformsTo.specification DeviceSpecificationType Example

The type or specification of a standard that devices can adhere to

Device.property.type DeviceType Example

Codes used to identify medical devices. Includes concepts from SNOMED CT (http://www.snomed.org/) where concept is-a 49062001 (Device) and is provided as a suggestive example.

Device.additive.type SubstanceCode Example

This value set contains concept codes for specific substances. It includes codes from SNOMED icon where concept is-a 105590001 (Substance (substance))

Device.safety DeviceSafety Example

Codes used to identify medical devices safety characteristics. These codes are taken from the NCI Thesaurus icon and are provided here as a suggestive example.

UniqueKeyLevelLocationDescriptionExpression
img dev-1Rule (base)only one Device.name.display SHALL be true when there is more than one Device.namename.where(display=true).count() <= 1

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:

For systems that do have a system URI for device types (indicating the model number or part number), they can and should appear as codings in Device.type.

Device.type relates DeviceDefinition.classification.type using the same binding enabling referencing. Please see the Search Parameters for details on how to search for devices by type.

The International Medical Device Regulators Forum IMDRF UDI Working Group published UDI System for Medical Devices (Version 2.0) icon, the base specification for Unique Device Identifiers (UDI). The United States Food and Drug Administration has produced an implementation guide icon 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*:

  • Device identifier (DI)**, which is the actual identification component
  • Production identifier(s)(PI) which provide the means to track a device through its manufacture, distribution and use.

*non-UDI elements may also appear within the UDI carrier. **a "GTIN" (sometimes also called an EAN number) is a code developed by GS1 icon 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) icon. 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.

Device.status is about the record, while .availabilityStatus is about the device itself.

Search parameters for this resource. See also the full list of search parameters for this resource, and check the Extensions registry for search parameters on extensions related to 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
biological-source-event token The biological source for the device Device.biologicalSourceEvent
code token The definition / type of the device (code) Device.type | Device.definition.resolve().classification.type
code-value-concept composite Code and value parameter pair On Device:
  specification: specification.ofType(CodeableConcept)
  version: version.ofType(string)
definition reference The definition / type of the device Device.definition
(DeviceDefinition)
device-name string A server defined search that may match any of the string fields in Device.name or Device.type. Device.name.value | Device.type.coding.display | Device.type.text
expiration-date date The expiration date of the device Device.expirationDate
identifier token Instance id from manufacturer, owner, and others Device.identifier
location reference A location, where the resource is found Device.location
(Location)
lot-number string The lot number of the device Device.lotNumber
manufacture-date date The manufacture date of the device Device.manufactureDate
manufacturer string The manufacturer of the device Device.manufacturer
model string The model of the device Device.modelNumber
parent reference The parent device Device.parent
(Device)
serial-number string The serial number of the device Device.serialNumber | Device.identifier.where(type='SNO')
specification token The standards, specifications, or formal guidances. Device.conformsTo.specification
specification-version composite A composite of both specification and version On Device.conformsTo:
  specification: specification
  version: version
status token active | inactive | entered-in-error | unknown Device.status
type token The type of the device Device.type | Device.definition.resolve().classification.type
udi-carrier-hrf string

UDI Barcode (RFID or other technology) string in HRF format.

Device.udiCarrier.carrierHRF
udi-di string The udi Device Identifier (DI) Device.udiCarrier.deviceIdentifier
version string The specific version of the device Device.deviceVersion.value
version-type composite Value and type of version On Device.deviceVersion:
  type: type
  value: value