This page is part of the US Core (v3.0.1: STU3 Ballot 3) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions
StructureDefinition-us-core-implantable-device
This profile sets minimum expectations for the Device resource to record, search and fetch UDI information associated with a patient’s implantable device(s). It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.
Example Usage Scenarios:
The following are example usage scenarios for the US Core Implantable Device profile:
- Query for a Patient’s Implantable Devices
- Record a Patient Implantable Device
Mandatory and Must Support Data Elements
The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.
Each Device must have:
- a code identifying the type of device
- a patient
- the Device Identifier (UDI-DI)
In addition, the following data-elements must be supported if the data is present in the sending system (Must Support definition):
Each Device must support:
- A Unique Device Identifier (UDI) numeric or alphanumeric code
- either as the Human Readable Form (HRF) string representation of the barcode
- or the Automatic Identification and Data Capture (AIDC) representation.
- The following parsed Production Identifiers (UDI-PI) from the UDI
- the manufacture date
- the expiration date
- the lot number
- the serial number
- the distinct identifier (i.e., the distinct identification code)
Profile specific implementation guidance:
- This profile supports the requirement to retrieve an 170.315(a)(14) Implantable device list. Implementers are encouraged to use the FDA Global UDI Database (GUDID) and associated APIs to parse and validate the UDI:
- The AccessGUDID API provides access to device records in GUDID including safety information and UDI. It includes APIs to query and download a complete list of implantable devices registered in GUDID.
- The Parse UDI API allows users to pass a UDI and return each part of the UDI in a structured format (specifically the serialNumber, lotNumber, expirationDate, distinctIdentifier (returned as donation_id) or manufactureDate).
- Implantable medical devices that have UDI information SHALL represent this information in either
carrierAIDC
orcarrierHRF
. - At least one of the Production Identifiers (UDI-PI) SHALL be present.
- Servers SHOULD support query by Device.type to allow clients to request the patient’s devices by a specific type. Note: The Device.type is too granular to differentiate implantable vs. non-implantable devices.
-
In the Quick Start section below, searching for all devices is described. Records of implanted devices MAY be queried against UDI data including:
- UDI HRF string (
udi-carrier
) - UDI Device Identifier (
udi-di
) - Manufacturer (
manufacturer
) - Model number (
model
)
Implementers MAY also adopt custom SearchParameters for searching by:
- lot numbers
- serial number
- expiration date
- manufacture date
- distinct identifier
- UDI HRF string (
Examples
Formal Views of Profile Content
Description of Profiles, Differentials, and Snapshots.
The official URL for this profile is:
http://hl7.org/fhir/us/core/StructureDefinition/us-core-implantable-device
Published on Sun Aug 11 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.
This profile builds on Device
Device
Summary of the Mandatory Requirements
- A Udicarrier in
Device.udiCarrier
- which must have a string value in
Device.udiCarrier.deviceIdentifier
- which should have a base64Binary value in
Device.udiCarrier.carrierAIDC
- which should have a string value in
Device.udiCarrier.carrierHRF
- which must have a string value in
- A CodeableConcept in
Device.type
with an extensible binding to FHIR Device Types - A Patient Reference in
Device.patient
Summary of the Must Support Requirements
- A string in
Device.distinctIdentifier
- A dateTime in
Device.manufactureDate
- A dateTime in
Device.expirationDate
- A string in
Device.lotNumber
- A string in
Device.serialNumber
Summary of Constraints
- At least one of the Production Identifiers (UDI-PI) SHALL be present.
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | I | 0..* | us-core-9: At least one of the Production Identifiers (UDI-PI) SHALL be present. | |
udiCarrier | S | 1..1 | BackboneElement | |
deviceIdentifier | S | 1..1 | string | |
carrierAIDC | S | 0..1 | base64Binary | |
carrierHRF | S | 0..1 | string | |
distinctIdentifier | SI | 0..1 | string | |
manufactureDate | SI | 0..1 | dateTime | |
expirationDate | SI | 0..1 | dateTime | |
lotNumber | SI | 0..1 | string | |
serialNumber | SI | 0..1 | string | |
type | S | 1..1 | CodeableConcept | Binding: FHIRDeviceTypes (extensible) |
patient | S | 1..1 | Reference(US Core Patient Profile) | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | I | 0..* | Item used in healthcare us-core-9: At least one of the Production Identifiers (UDI-PI) SHALL be present. | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | Instance identifier | |
definition | 0..1 | Reference(DeviceDefinition) | The reference to the definition for the device | |
udiCarrier | SΣI | 1..1 | BackboneElement | Unique Device Identifier (UDI) Barcode string |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
deviceIdentifier | SΣ | 1..1 | string | Mandatory fixed portion of UDI |
issuer | 0..1 | uri | UDI Issuing Organization | |
jurisdiction | 0..1 | uri | Regional UDI authority | |
carrierAIDC | SΣ | 0..1 | base64Binary | UDI Machine Readable Barcode String |
carrierHRF | SΣ | 0..1 | string | UDI Human Readable Barcode String |
entryType | 0..1 | code | barcode | rfid | manual + Binding: UDIEntryType (required) | |
status | ?!Σ | 0..1 | code | active | inactive | entered-in-error | unknown Binding: FHIRDeviceStatus (required) |
statusReason | 0..* | CodeableConcept | online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off Binding: FHIRDeviceStatusReason (extensible) | |
distinctIdentifier | S | 0..1 | string | The distinct identification string |
manufacturer | 0..1 | string | Name of device manufacturer | |
manufactureDate | S | 0..1 | dateTime | Date when the device was made |
expirationDate | S | 0..1 | dateTime | Date and time of expiry of this device (if applicable) |
lotNumber | S | 0..1 | string | Lot number of manufacture |
serialNumber | S | 0..1 | string | Serial number assigned by the manufacturer |
deviceName | I | 0..* | BackboneElement | The name of the device as given by the manufacturer |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 Binding: DeviceNameType (required) | |
modelNumber | 0..1 | string | The model number for the device | |
partNumber | 0..1 | string | The part number of the device | |
type | S | 1..1 | CodeableConcept | The kind or type of device Binding: FHIRDeviceTypes (extensible) |
specialization | I | 0..* | BackboneElement | The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 | I | 0..* | BackboneElement | The actual design of the device or software version running on the device |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 | I | 0..* | BackboneElement | The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | 1..1 | CodeableConcept | Code that specifies the property DeviceDefinitionPropetyCode (Extensible) | |
valueQuantity | 0..* | Quantity | Property value as a quantity | |
valueCode | 0..* | CodeableConcept | Property value as a code, e.g., NTP4 (synced to NTP) | |
patient | S | 1..1 | Reference(US Core Patient Profile) | 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 |
Device
Summary of the Mandatory Requirements
- A Udicarrier in
Device.udiCarrier
- which must have a string value in
Device.udiCarrier.deviceIdentifier
- which should have a base64Binary value in
Device.udiCarrier.carrierAIDC
- which should have a string value in
Device.udiCarrier.carrierHRF
- which must have a string value in
- A CodeableConcept in
Device.type
with an extensible binding to FHIR Device Types - A Patient Reference in
Device.patient
Summary of the Must Support Requirements
- A string in
Device.distinctIdentifier
- A dateTime in
Device.manufactureDate
- A dateTime in
Device.expirationDate
- A string in
Device.lotNumber
- A string in
Device.serialNumber
Summary of Constraints
- At least one of the Production Identifiers (UDI-PI) SHALL be present.
Differential View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | I | 0..* | us-core-9: At least one of the Production Identifiers (UDI-PI) SHALL be present. | |
udiCarrier | S | 1..1 | BackboneElement | |
deviceIdentifier | S | 1..1 | string | |
carrierAIDC | S | 0..1 | base64Binary | |
carrierHRF | S | 0..1 | string | |
distinctIdentifier | SI | 0..1 | string | |
manufactureDate | SI | 0..1 | dateTime | |
expirationDate | SI | 0..1 | dateTime | |
lotNumber | SI | 0..1 | string | |
serialNumber | SI | 0..1 | string | |
type | S | 1..1 | CodeableConcept | Binding: FHIRDeviceTypes (extensible) |
patient | S | 1..1 | Reference(US Core Patient Profile) | |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Device | I | 0..* | Item used in healthcare us-core-9: At least one of the Production Identifiers (UDI-PI) SHALL be present. | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | 0..* | Identifier | Instance identifier | |
definition | 0..1 | Reference(DeviceDefinition) | The reference to the definition for the device | |
udiCarrier | SΣI | 1..1 | BackboneElement | Unique Device Identifier (UDI) Barcode string |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
deviceIdentifier | SΣ | 1..1 | string | Mandatory fixed portion of UDI |
issuer | 0..1 | uri | UDI Issuing Organization | |
jurisdiction | 0..1 | uri | Regional UDI authority | |
carrierAIDC | SΣ | 0..1 | base64Binary | UDI Machine Readable Barcode String |
carrierHRF | SΣ | 0..1 | string | UDI Human Readable Barcode String |
entryType | 0..1 | code | barcode | rfid | manual + Binding: UDIEntryType (required) | |
status | ?!Σ | 0..1 | code | active | inactive | entered-in-error | unknown Binding: FHIRDeviceStatus (required) |
statusReason | 0..* | CodeableConcept | online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off Binding: FHIRDeviceStatusReason (extensible) | |
distinctIdentifier | S | 0..1 | string | The distinct identification string |
manufacturer | 0..1 | string | Name of device manufacturer | |
manufactureDate | S | 0..1 | dateTime | Date when the device was made |
expirationDate | S | 0..1 | dateTime | Date and time of expiry of this device (if applicable) |
lotNumber | S | 0..1 | string | Lot number of manufacture |
serialNumber | S | 0..1 | string | Serial number assigned by the manufacturer |
deviceName | I | 0..* | BackboneElement | The name of the device as given by the manufacturer |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 Binding: DeviceNameType (required) | |
modelNumber | 0..1 | string | The model number for the device | |
partNumber | 0..1 | string | The part number of the device | |
type | S | 1..1 | CodeableConcept | The kind or type of device Binding: FHIRDeviceTypes (extensible) |
specialization | I | 0..* | BackboneElement | The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 | I | 0..* | BackboneElement | The actual design of the device or software version running on the device |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
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 | I | 0..* | BackboneElement | The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
type | 1..1 | CodeableConcept | Code that specifies the property DeviceDefinitionPropetyCode (Extensible) | |
valueQuantity | 0..* | Quantity | Property value as a quantity | |
valueCode | 0..* | CodeableConcept | Property value as a code, e.g., NTP4 (synced to NTP) | |
patient | S | 1..1 | Reference(US Core Patient Profile) | 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 |
Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron
Quick Start
Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.
- See the General Guidance section for additional rules and expectations when a server requires status parameters.
- See the General Guidance section for additional guidance on searching for multiple patients.
Mandatory Search Parameters:
The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD be supported.:
-
SHALL support searching for all devices for a patient, including implantable devices using the
patient
search parameter:GET [base]/Device?patient=[reference]
Example:
- GET [base]/Device?patient=1137192
Implementation Notes: Fetches a bundle of all Device resources for the specified patient (how to search by reference)
Optional Search Parameters:
The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.
-
SHOULD support searching using the combination of the
patient
andtype
search parameters:GET [base]/Device?patient=[reference]&type={[system]}|[code]
Example:
- GET [base]/Device?patient=1316024&type=http://snomed.info/sct|468063009
Implementation Notes: Fetches a bundle of all Device resources for the specified patient and type. (how to search by reference and how to search by token)