This page is part of the FHIR Specification (v1.1.0: STU 3 Ballot 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions
. Page versions: R3 R2
This is a frozen snapshot of the FHIR specification created for the purpose of balloting the GAO implementation Guide. It includes draft changes that may be part of the future DSTU 2.1 release but further change is expected. Readers should focus solely on the GAO implementation content, and FHIR DSTU 2 for other purposes.

Health Care Devices Work Group | Maturity Level: 1 | Compartments: Device |
Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.

The DeviceComponent resource is used to describe the characteristics, operational status and capabilities of a medical-related component of a medical device. It can be a physical component that is integrated inside the device, a removable physical component, or a non-physical component that allows physiological measurement data and its derived data to be grouped in a hierarchical information organization.
Note:
For the initial scope, this DeviceComponent resource is only applicable to describe a single node in the containment tree that is produced by the context scanner in any medical device that implements or derives from the ISO/IEEE 11073 standard and that does not represent a metric. Examples for such a node are MDS, VMD, or Channel.

The DeviceComponent allows us to change the configuration of the device without having to change the device resource instance. The life-cycle of the configuration may be completely different than the one of the device itself.
There are several related resources


A Context Scanner object of a medical device that implements or derives from ISO/IEEE 11073 standard is responsible for observing device configuration changes. After instantiation, the Context Scanner object is responsible for announcing the object instances in the device's MDIB, a hierarchical containment (MDS->VMD->Channel->Metric). The DeviceComponent resource can be used to describe the characteristics, operational status and capabilities of a medical-related component of a medical device. It can be a physical component that is integrated inside the device, a removable physical component, or a non-physical component that allows physiological measurement data and its derived data to be grouped in a hierarchical information organization. Devices are conceptualized using the following main structure:
Very simple devices may have only a single virtual device with a single channel and one metric, while complex devices may have multiple items at every level.
This resource is referenced by devicemetric

Structure
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | Σ | DomainResource | An instance of a medical-related component of a medical device | |
![]() ![]() | Σ | 1..1 | CodeableConcept | What kind of component it is ComponentType (Preferred) |
![]() ![]() | Σ | 1..1 | Identifier | Instance id assigned by the software stack |
![]() ![]() | Σ | 1..1 | instant | Recent system change timestamp |
![]() ![]() | Σ | 0..1 | Reference(Device) | A source device of this component |
![]() ![]() | Σ | 0..1 | Reference(DeviceComponent) | Parent resource link |
![]() ![]() | Σ | 0..* | CodeableConcept | Component operational status |
![]() ![]() | Σ | 0..1 | CodeableConcept | Current supported parameter group |
![]() ![]() | Σ | 0..1 | code | other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ Measmnt-Principle (Required) |
![]() ![]() | Σ | 0..* | BackboneElement | Production specification of the component |
![]() ![]() ![]() | Σ | 0..1 | CodeableConcept | Specification type |
![]() ![]() ![]() | Σ | 0..1 | Identifier | Internal component unique identification |
![]() ![]() ![]() | Σ | 0..1 | string | A printable string defining the component |
![]() ![]() | Σ | 0..1 | CodeableConcept | Language code for the human-readable text strings produced by the device Language (Required) |
Documentation for this format | ||||
UML Diagram
XML Template
<DeviceComponent xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <type><!-- 1..1 CodeableConcept What kind of component it is
--></type> <identifier><!-- 1..1 Identifier Instance id assigned by the software stack --></identifier> <lastSystemChange value="[instant]"/><!-- 1..1 Recent system change timestamp --> <source><!-- 0..1 Reference(Device) A source device of this component --></source> <parent><!-- 0..1 Reference(DeviceComponent) Parent resource link --></parent> <operationalStatus><!-- 0..* CodeableConcept Component operational status --></operationalStatus> <parameterGroup><!-- 0..1 CodeableConcept Current supported parameter group --></parameterGroup> <measurementPrinciple value="[code]"/><!-- 0..1 other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ --> <productionSpecification> <!-- 0..* Production specification of the component --> <specType><!-- 0..1 CodeableConcept Specification type --></specType> <componentId><!-- 0..1 Identifier Internal component unique identification --></componentId> <productionSpec value="[string]"/><!-- 0..1 A printable string defining the component --> </productionSpecification> <languageCode><!-- 0..1 CodeableConcept Language code for the human-readable text strings produced by the device
--></languageCode> </DeviceComponent>
JSON Template
{
"resourceType" : "DeviceComponent",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"type" : { CodeableConcept }, // R! What kind of component it is
"identifier" : { Identifier }, // R! Instance id assigned by the software stack
"lastSystemChange" : "<instant>", // R! Recent system change timestamp
"source" : { Reference(Device) }, // A source device of this component
"parent" : { Reference(DeviceComponent) }, // Parent resource link
"operationalStatus" : [{ CodeableConcept }], // Component operational status
"parameterGroup" : { CodeableConcept }, // Current supported parameter group
"measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
"productionSpecification" : [{ // Production specification of the component
"specType" : { CodeableConcept }, // Specification type
"componentId" : { Identifier }, // Internal component unique identification
"productionSpec" : "<string>" // A printable string defining the component
}],
"languageCode" : { CodeableConcept } // Language code for the human-readable text strings produced by the device
}
Structure
| Name | Flags | Card. | Type | Description & Constraints![]() |
|---|---|---|---|---|
![]() | Σ | DomainResource | An instance of a medical-related component of a medical device | |
![]() ![]() | Σ | 1..1 | CodeableConcept | What kind of component it is ComponentType (Preferred) |
![]() ![]() | Σ | 1..1 | Identifier | Instance id assigned by the software stack |
![]() ![]() | Σ | 1..1 | instant | Recent system change timestamp |
![]() ![]() | Σ | 0..1 | Reference(Device) | A source device of this component |
![]() ![]() | Σ | 0..1 | Reference(DeviceComponent) | Parent resource link |
![]() ![]() | Σ | 0..* | CodeableConcept | Component operational status |
![]() ![]() | Σ | 0..1 | CodeableConcept | Current supported parameter group |
![]() ![]() | Σ | 0..1 | code | other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ Measmnt-Principle (Required) |
![]() ![]() | Σ | 0..* | BackboneElement | Production specification of the component |
![]() ![]() ![]() | Σ | 0..1 | CodeableConcept | Specification type |
![]() ![]() ![]() | Σ | 0..1 | Identifier | Internal component unique identification |
![]() ![]() ![]() | Σ | 0..1 | string | A printable string defining the component |
![]() ![]() | Σ | 0..1 | CodeableConcept | Language code for the human-readable text strings produced by the device Language (Required) |
Documentation for this format | ||||
XML Template
<DeviceComponent xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <type><!-- 1..1 CodeableConcept What kind of component it is
--></type> <identifier><!-- 1..1 Identifier Instance id assigned by the software stack --></identifier> <lastSystemChange value="[instant]"/><!-- 1..1 Recent system change timestamp --> <source><!-- 0..1 Reference(Device) A source device of this component --></source> <parent><!-- 0..1 Reference(DeviceComponent) Parent resource link --></parent> <operationalStatus><!-- 0..* CodeableConcept Component operational status --></operationalStatus> <parameterGroup><!-- 0..1 CodeableConcept Current supported parameter group --></parameterGroup> <measurementPrinciple value="[code]"/><!-- 0..1 other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ --> <productionSpecification> <!-- 0..* Production specification of the component --> <specType><!-- 0..1 CodeableConcept Specification type --></specType> <componentId><!-- 0..1 Identifier Internal component unique identification --></componentId> <productionSpec value="[string]"/><!-- 0..1 A printable string defining the component --> </productionSpecification> <languageCode><!-- 0..1 CodeableConcept Language code for the human-readable text strings produced by the device
--></languageCode> </DeviceComponent>
JSON Template
{
"resourceType" : "DeviceComponent",
// from Resource: id, meta, implicitRules, and language
// from DomainResource: text, contained, extension, and modifierExtension
"type" : { CodeableConcept }, // R! What kind of component it is
"identifier" : { Identifier }, // R! Instance id assigned by the software stack
"lastSystemChange" : "<instant>", // R! Recent system change timestamp
"source" : { Reference(Device) }, // A source device of this component
"parent" : { Reference(DeviceComponent) }, // Parent resource link
"operationalStatus" : [{ CodeableConcept }], // Component operational status
"parameterGroup" : { CodeableConcept }, // Current supported parameter group
"measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
"productionSpecification" : [{ // Production specification of the component
"specType" : { CodeableConcept }, // Specification type
"componentId" : { Identifier }, // Internal component unique identification
"productionSpec" : "<string>" // A printable string defining the component
}],
"languageCode" : { CodeableConcept } // Language code for the human-readable text strings produced by the device
}
Alternate definitions: Schema/Schematron, Resource Profile (XML, JSON), Questionnaire

| Path | Definition | Type | Reference |
|---|---|---|---|
| DeviceComponent.type | Describes the type of the component. | Preferred | IEEE 11073-10101 |
| DeviceComponent.operationalStatus | Codes representing the current status of the device - on, off, suspended, etc. | Unknown | No details provided yet |
| DeviceComponent.parameterGroup | Codes identifying groupings of parameters; e.g. Cardiovascular. | Unknown | No details provided yet |
| DeviceComponent.measurementPrinciple | Different measurement principle supported by the device. | Required | Measmnt-Principle |
| DeviceComponent.productionSpecification.specType | Codes for device specification types such as serial number, part number, hardware revision, software revision, etc. | Unknown | No details provided yet |
| DeviceComponent.languageCode | A human language. | Required | IETF language tag |

, but
this is not required. See Terminology
Systems for the correct representation of these codes in a Coding data type.

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
| Name | Type | Description | Paths |
| parent | reference | The parent DeviceComponent resource | DeviceComponent.parent (DeviceComponent) |
| source | reference | The device source | DeviceComponent.source (Device) |
| type | token | The device component type | DeviceComponent.type |