Skip to main content

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

FieldTypeDescriptionRequired
idstringLogical id of the resourceNo
identifierIdentifier[]Instance identifiersNo
definitionReferenceThe reference to the definition for the deviceNo
udiCarrierBackboneElement[]Unique device identifier (UDI) Barcode stringNo
statuscodeactive | inactive | entered-in-error | unknownNo
statusReasonCodeableConcept[]online | paused | standby | offline | not-ready | transduc-discon | hw-discon | offNo
distinctIdentifierstringThe distinct identification stringNo
manufacturerstringName of device manufacturerNo
manufactureDatedateTimeDate when the device was madeNo
expirationDatedateTimeDate and time of expiry of this deviceNo
lotNumberstringLot number of manufactureNo
serialNumberstringSerial number assigned by the manufacturerNo
deviceNameBackboneElement[]The name of the device as given by the manufacturerNo
modelNumberstringThe model number for the deviceNo
partNumberstringThe part number of the deviceNo
typeCodeableConceptThe kind or type of deviceNo
specializationBackboneElement[]The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communicationNo
versionBackboneElement[]The actual design of the device or software version running on the deviceNo
propertyBackboneElement[]The actual configuration settings of a device as it actually operates, e.g., regulation status, time propertiesNo
patientReference(Patient)Patient to whom Device is affixedNo
ownerReference(Organization)Organization responsible for deviceNo
contactContactPoint[]Details for human/organization for supportNo
locationReference(Location)Where the device is foundNo
urluriNetwork address to contact deviceNo
noteAnnotation[]Device notes and commentsNo
safetyCodeableConcept[]Safety Characteristics of DeviceNo
parentReference(Device)The parent deviceNo

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 / SolutionCreateReadUpdateSearch
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 for devices using various criteria.

GET Method

Use GET for simple searches with parameters in the query string.

GET /Device?parameter=value

POST Method

Use POST for complex searches with form-encoded parameters.

POST /Device/_search
info

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:

ParameterTypeRequiredDescriptionExample
patientreferenceYesPatient information, if the resource is affixed to a personpatient=value
typetokenNoThe type of the devicetype=value
_lastUpdateddateNoOnly return resources which were last updated as specified by the given range_lastUpdated=value
_revincludespecialNoInclude Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target"_revinclude=value

ID-based Search:

ParameterTypeRequiredDescriptionExample
_idstringYesThe ID of the resource_id=value
_lastUpdateddateNoOnly return resources which were last updated as specified by the given range_lastUpdated=value
_revincludespecialNoInclude Provenance resource(s) that reference the matched search results. Allowed: "Provenance:target"_revinclude=value

Examples

Read Device

Read Device by ID
curl -X GET https://fhir.netsmartcloud.com/provider/system-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.

Search by Patient
curl -X POST https://fhir.netsmartcloud.com/provider/system-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)

Search by Patient
curl -X GET https://fhir.netsmartcloud.com/provider/system-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

  1. Device Tracking: Search for devices associated with a specific patient to track implanted or assigned medical devices
  2. Device History: Retrieve device information as part of patient care coordination
  3. Safety Monitoring: Access device details for recall notifications or safety alerts
  4. Care Planning: Include device information in treatment planning and care coordination
  • 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: