Device
Overview
The Device resource provides information about "a type of manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device can be medical or non-medical." (HL7 FHIR R4 Device)
Use Cases
- Tracking implantable medical devices
- Managing durable medical equipment
- Recording device-related procedures and observations
- Supporting device recalls and safety monitoring
Relationships
- Patient: Devices can be associated with specific patients
- Procedure: Devices may be used during medical procedures
- Observation: Device readings and measurements
- DiagnosticReport: Device-generated reports
Resource Schema
Key Fields
| Field | Type | Description | Required |
|---|---|---|---|
| id | string | Logical id of the resource | No |
| identifier | Identifier[] | Instance identifiers | No |
| definition | Reference | The reference to the definition for the device | No |
| udiCarrier | BackboneElement[] | Unique device identifier (UDI) Barcode string | No |
| status | code | active | inactive | entered-in-error | unknown | No |
| statusReason | CodeableConcept[] | online | paused | standby | offline | not-ready | transduc-discon | hw-discon | off | No |
| distinctIdentifier | string | The distinct identification string | No |
| manufacturer | string | Name of device manufacturer | No |
| manufactureDate | dateTime | Date when the device was made | No |
| expirationDate | dateTime | Date and time of expiry of this device | No |
| lotNumber | string | Lot number of manufacture | No |
| serialNumber | string | Serial number assigned by the manufacturer | No |
| deviceName | BackboneElement[] | The name of the device as given by the manufacturer | No |
| modelNumber | string | The model number for the device | No |
| partNumber | string | The part number of the device | No |
| type | CodeableConcept | The kind or type of device | No |
| specialization | BackboneElement[] | The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication | No |
| version | BackboneElement[] | The actual design of the device or software version running on the device | No |
| property | BackboneElement[] | The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties | No |
| patient | Reference(Patient) | Patient to whom Device is affixed | No |
| owner | Reference(Organization) | Organization responsible for device | No |
| contact | ContactPoint[] | Details for human/organization for support | No |
| location | Reference(Location) | Where the device is found | No |
| url | uri | Network address to contact device | No |
| note | Annotation[] | Device notes and comments | No |
| safety | CodeableConcept[] | Safety Characteristics of Device | No |
| parent | Reference(Device) | The parent device | No |
JSON Example
{
"resourceType": "Device",
"id": "example-device-123",
"meta": {
"lastUpdated": "2022-08-22T19:37:00.000+00:00"
},
"udiCarrier": [
{
"deviceIdentifier": "10884521062856",
"carrierHRF": "(01)10884521062856(11)141231(17)150707(10)A213B1(21)1234"
}
],
"status": "inactive",
"distinctIdentifier": "(01)10884521062856",
"manufactureDate": "2014-12-30T12:00:00.000-00:00",
"expirationDate": "2015-07-06T12:00:00.000-00:00",
"lotNumber": "A213B1",
"serialNumber": "1234",
"type": {
"coding": [
{
"system": "https://snomed.org",
"code": "257395002",
"display": "Polyester suture (physical object)"
}
],
"text": "Polyester suture (physical object)"
},
"patient": {
"reference": "Patient/123",
"type": "Patient"
},
"note": [
{
"text": "Coated Braided Polyester"
}
],
"parent": {
"reference": "Device/parent-device-456",
"type": "Device"
}
}
Operations
The Certified API Device resource supports the following standard operations. However, support varies by the targeted CareRecord or solution.
| CareRecord / Solution | Create | Read | Update | Search |
|---|---|---|---|---|
| GEHRIMED | - | Yes | - | Yes |
| myAvatar | - | Yes | - | Yes |
| myEvolv | - | Yes | - | Yes |
| myUnity | - | Yes | - | Yes |
| TheraOffice | - | Yes | - | Yes |
Read
Retrieve a specific Device resource by its ID.
Syntax: GET [base]/Device/[id]
Search
Search for devices using various criteria.
GET Method
Use GET for simple searches with parameters in the query string.
- Production
- Preview
GET /Device?parameter=value
GET /Device?parameter=value
POST Method
Use POST for complex searches with form-encoded parameters.
- Production
- Preview
POST /Device/_search
POST /Device/_search
Not all Netsmart solutions support Device search. See supported operations table above and consult your target solution's documentation for more information.
Search Parameters
Patient-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
patient | reference | Yes | Patient information, if the resource is affixed to a person | patient=value |
type | token | No | The type of the device | type=value |
_lastUpdated | date | No | Only return resources which were last updated as specified by the given range | _lastUpdated=value |
_revinclude | special | No | Include Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target" | _revinclude=value |
ID-based Search:
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
_id | string | Yes | The ID of the resource | _id=value |
_lastUpdated | date | No | Only return resources which were last updated as specified by the given range | _lastUpdated=value |
_revinclude | special | No | Include Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target" | _revinclude=value |
Examples
Read Device
- Production
- Preview
curl -X GET https://fhir.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device/123 \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json"
curl -X GET https://fhirtest.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device/123 \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json"
Search Devices
Search by Patient (POST)
The POST method is recommended as it keeps health information out of the URL.
- Production
- Preview
curl -X POST https://fhir.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device/_search \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-form-urlencoded" \
-d "patient=Patient/123"
curl -X POST https://fhirtest.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device/_search \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json" \
-H "Content-Type: application/x-form-urlencoded" \
-d "patient=Patient/123"
Search by Patient (GET)
- Production
- Preview
curl -X GET https://fhir.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device?patient=Patient/123 \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json"
curl -X GET https://fhirtest.netsmartcloud.com/provider/patient-access/v2/{tenant-id}/Device?patient=Patient/123 \
-H "Authorization: {Bearer Token}" \
-H "Accept: application/fhir+json"
Response Example
{
"resourceType": "Bundle",
"id": "device-search-results",
"type": "searchset",
"total": 1,
"entry": [
{
"resource": {
"resourceType": "Device",
"id": "example-device-123",
"meta": {
"lastUpdated": "2022-08-22T19:37:00.000+00:00"
},
"udiCarrier": [
{
"deviceIdentifier": "10884521062856",
"carrierHRF": "(01)10884521062856(11)141231(17)150707(10)A213B1(21)1234"
}
],
"status": "inactive",
"distinctIdentifier": "(01)10884521062856",
"manufactureDate": "2014-12-30T12:00:00.000-00:00",
"expirationDate": "2015-07-06T12:00:00.000-00:00",
"lotNumber": "A213B1",
"serialNumber": "1234",
"type": {
"coding": [
{
"system": "https://snomed.org",
"code": "257395002",
"display": "Polyester suture (physical object)"
}
],
"text": "Polyester suture (physical object)"
},
"patient": {
"reference": "Patient/123",
"type": "Patient"
},
"note": [
{
"text": "Coated Braided Polyester"
}
],
"parent": {
"reference": "Device/parent-device-456",
"type": "Device"
}
}
}
]
}
Integration Patterns
Common Workflows
- Device Tracking: Search for devices associated with a specific patient to track implanted or assigned medical devices
- Device History: Retrieve device information as part of patient care coordination
- Safety Monitoring: Access device details for recall notifications or safety alerts
- Care Planning: Include device information in treatment planning and care coordination
Related Resources
- Patient: Device assignments and associations
- Procedure: Procedures involving device implantation or use
- Observation: Device-generated measurements and readings
- DiagnosticReport: Reports from diagnostic devices
- Provenance: Audit trail for device data changes
Error Handling
For detailed information about error responses and status codes, see the Error Handling documentation.
Supported Profiles
This API supports the following FHIR profiles: