Overview
Unique Device Identifier(s) for a Patient’s Implantable Device(s) are recorded in the system using FHIR Device resource. Device is a type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device.
Each Device has next elements:
- a code identifying the type of device
- a patient
Each Device supports next elements:
- A Unique Device Identifier (UDI) numeric or alphanumeric code as the Human Readable Form (HRF) string representation of the barcode
- The Device Identifier (UDI-DI)
- 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:
-
For non-implantable devices (for example, software or crutches) the base FHIR Device resource or other use case specific Device profiles should be used
-
This profile supports the requirement to retrieve an 170.315(a)(14) Implantable device list and follows the HL7 Cross Paradigm Implementation Guide: UDI Pattern guidelines for exchanging information about the use of and/or implantation of medical devices in patients.
- A unique device identifier (UDI) is a unique numeric or alphanumeric code. There is a machine-readable version (AIDC - the Automatic Identification and Data Capture) as well as a human-readable version of the UDI (HRF - Human Readable Form string). This profile specifies that only the HRF must be supported. Considering the complexity of parsing AIDCs there is no expectation at this time that one converts an AIDC to HRF upon receipt from a FHIR source that is not conformant to this profile or is using another interchange standard (e.g., C-CDA, HL7 v2, etc). The UDI generally consists of a mandatory Device identifier (DI) and a conditional Production identifier (PI) that identifies one or more of the five UDI-PI elements. The UDI and its components are mapped to the US Core Implantable Device Profile elements in the table below:
UDI component US Core Implantable Device Profile element UDI HRF string Device.udiCarrier.carrierHRF DI Device.udiCarrier.deviceIdentifier manufacture date (UDI-PI element) Device.manufactureDate expiration dat (UDI-PI element) Device.expirationDate lot number (UDI-PI element) Device.lotNumber serial number (UDI-PI element) Device.serialNumber distinct identifier (UDI-PI element) Device.distinctIdentifier -
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).
This resource conforms to USCDI V2 profile for Device - refer to US Core Device Profile. Device response will be provided in JSON (refers to Capability Statement) format as per FHIR standard R4 version.
USCore Data Element | FHIR Resource Field |
---|---|
code | Device.type |
patient | Device.patient |
UDI (optional) | Device.udiCarrier.deviceIdentifier |
manufacture date(optional) | Device.manufactureDate |
expiration date (optional) | Device.expirationDate |
lot number (optional) | Device.lotNumber |
serial number (optional) | Device.serialNumber |
Must support elements, mandatory and optional search parameters
Device must support these elements:
udiCarrier
deviceIdentifier
carrierHRF
distinctIdentifier
manufactureDate
expirationDate
lotNumber
serialNumber
type
patient
The following search parameters and search parameter combinations SHALL be supported:
The syntax used to describe the interactions is described here.
SHALL support searching for all Devices for a patient using the patient search parameter:
GET [base url]/Device?patient={Type/}[id]
The following search parameter combinations SHOULD be supported (optional):
SHOULD support searching using the combination of the patient and type search parameters:
GET [base url]/Device?patient={Type/}[id]&type={system|}[code]
The response to any search operation is always a list of resources in a Bundle or an Operation Outcome.
Device By Patient Id
Search for Device by patient.
METHOD GET
[base url]/Device?patient={Type/}[id]
PARAMS
[base url] - FHIR base url
[id] - Id for the Patient
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Device?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Device By Id
Get Device by ID.
METHOD GET
[base url]/Device/{id}
or
[base url]/Device?_id={id}
PARAMS
[base url] - FHIR base url
{id} - Id for Device resource
HEADERSÍ
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Device/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
Device by patient and type search parameters
Get Devices using the combination of the patient and type search parameters:
METHOD GET
GET [base url]/Device?patient={Type/}[id]&type={system|}[code]
PARAMS
[base url] - FHIR base url
{Type} - Type for the Reference. Example: Patient
[id] - patient id
{system|} - terminology system used to identify device code
[code] - device code
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/Device?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&type=http://snomed.info/sct|468063009 \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'