This page is part of the FHIR Specification (v3.0.2: STU 3). 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
. Page versions: R3 R2
| Health Care Devices  Work Group | Maturity Level: 1 | Trial Use | Compartments: Device | 
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  | 
|---|---|---|---|---|
|   DeviceComponent | Σ | DomainResource | An instance of a medical-related component of a medical device Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
|    identifier | Σ | 1..1 | Identifier | Instance id assigned by the software stack | 
|    type | Σ | 1..1 | CodeableConcept | What kind of component it is FHIR Device Types (Preferred) | 
|    lastSystemChange | Σ | 0..1 | instant | Recent system change timestamp | 
|    source | Σ | 0..1 | Reference(Device) | Top-level device resource link | 
|    parent | Σ | 0..1 | Reference(DeviceComponent) | Parent resource link | 
|    operationalStatus | Σ | 0..* | CodeableConcept | Current operational status of the component, for example On, Off or Standby DeviceComponentOperationalStatus (Extensible) | 
|    parameterGroup | Σ | 0..1 | CodeableConcept | Current supported parameter group DeviceComponentParameterGroup (Extensible) | 
|    measurementPrinciple | Σ | 0..1 | code | other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ MeasmntPrinciple (Required) | 
|    productionSpecification | Σ | 0..* | BackboneElement | Specification details such as Component Revisions, or Serial Numbers | 
|     specType | Σ | 0..1 | CodeableConcept | Type or kind of production specification, for example serial number or software revision DeviceSpecificationSpecType (Extensible) | 
|     componentId | Σ | 0..1 | Identifier | Internal component unique identification | 
|     productionSpec | Σ | 0..1 | string | A printable string defining the component | 
|    languageCode | Σ | 0..1 | CodeableConcept | Language code for the human-readable text strings produced by the device Common Languages (Extensible but limited to All Languages) | 
|  Documentation for this format | ||||
UML Diagram (Legend)
XML Template
<DeviceComponent xmlns="http://hl7.org/fhir"><!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 1..1 Identifier Instance id assigned by the software stack --></identifier> <type><!-- 1..1 CodeableConcept What kind of component it is --></type> <lastSystemChange value="[instant]"/><!-- 0..1 Recent system change timestamp --> <source><!-- 0..1 Reference(Device) Top-level device resource link --></source> <parent><!-- 0..1 Reference(DeviceComponent) Parent resource link --></parent> <operationalStatus><!-- 0..* CodeableConcept Current operational status of the component, for example On, Off or Standby --></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..* Specification details such as Component Revisions, or Serial Numbers --> <specType><!-- 0..1 CodeableConcept Type or kind of production specification, for example serial number or software revision --></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
  "identifier" : { Identifier }, // R!  Instance id assigned by the software stack
  "type" : { CodeableConcept }, // R!  What kind of component it is
  "lastSystemChange" : "<instant>", // Recent system change timestamp
  "source" : { Reference(Device) }, // Top-level device resource link
  "parent" : { Reference(DeviceComponent) }, // Parent resource link
  "operationalStatus" : [{ CodeableConcept }], // Current operational status of the component, for example On, Off or Standby
  "parameterGroup" : { CodeableConcept }, // Current supported parameter group
  "measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
  "productionSpecification" : [{ // Specification details such as Component Revisions, or Serial Numbers
    "specType" : { CodeableConcept }, // Type or kind of production specification, for example serial number or software revision
    "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
}
  "resourceType" : "DeviceComponent",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // R!  Instance id assigned by the software stack
  "type" : { CodeableConcept }, // R!  What kind of component it is
  "lastSystemChange" : "<instant>", // Recent system change timestamp
  "source" : { Reference(Device) }, // Top-level device resource link
  "parent" : { Reference(DeviceComponent) }, // Parent resource link
  "operationalStatus" : [{ CodeableConcept }], // Current operational status of the component, for example On, Off or Standby
  "parameterGroup" : { CodeableConcept }, // Current supported parameter group
  "measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
  "productionSpecification" : [{ // Specification details such as Component Revisions, or Serial Numbers
    "specType" : { CodeableConcept }, // Type or kind of production specification, for example serial number or software revision
    "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
}
 Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:DeviceComponent; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:DeviceComponent.identifier [ Identifier ]; # 1..1 Instance id assigned by the software stack fhir:DeviceComponent.type [ CodeableConcept ]; # 1..1 What kind of component it is fhir:DeviceComponent.lastSystemChange [ instant ]; # 0..1 Recent system change timestamp fhir:DeviceComponent.source [ Reference(Device) ]; # 0..1 Top-level device resource link fhir:DeviceComponent.parent [ Reference(DeviceComponent) ]; # 0..1 Parent resource link fhir:DeviceComponent.operationalStatus [ CodeableConcept ], ... ; # 0..* Current operational status of the component, for example On, Off or Standby fhir:DeviceComponent.parameterGroup [ CodeableConcept ]; # 0..1 Current supported parameter group fhir:DeviceComponent.measurementPrinciple [ code ]; # 0..1 other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ fhir:DeviceComponent.productionSpecification [ # 0..* Specification details such as Component Revisions, or Serial Numbers fhir:DeviceComponent.productionSpecification.specType [ CodeableConcept ]; # 0..1 Type or kind of production specification, for example serial number or software revision fhir:DeviceComponent.productionSpecification.componentId [ Identifier ]; # 0..1 Internal component unique identification fhir:DeviceComponent.productionSpecification.productionSpec [ string ]; # 0..1 A printable string defining the component ], ...; fhir:DeviceComponent.languageCode [ CodeableConcept ]; # 0..1 Language code for the human-readable text strings produced by the device ]
Changes since DSTU2
| DeviceComponent | |
| DeviceComponent.lastSystemChange | 
 | 
| DeviceComponent.operationalStatus | 
 | 
| DeviceComponent.parameterGroup | 
 | 
| DeviceComponent.productionSpecification.specType | 
 | 
| DeviceComponent.languageCode | 
 | 
See the Full Difference for further information
This analysis is available as XML or JSON.
See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.).
Structure
| Name | Flags | Card. | Type | Description & Constraints  | 
|---|---|---|---|---|
|   DeviceComponent | Σ | DomainResource | An instance of a medical-related component of a medical device Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
|    identifier | Σ | 1..1 | Identifier | Instance id assigned by the software stack | 
|    type | Σ | 1..1 | CodeableConcept | What kind of component it is FHIR Device Types (Preferred) | 
|    lastSystemChange | Σ | 0..1 | instant | Recent system change timestamp | 
|    source | Σ | 0..1 | Reference(Device) | Top-level device resource link | 
|    parent | Σ | 0..1 | Reference(DeviceComponent) | Parent resource link | 
|    operationalStatus | Σ | 0..* | CodeableConcept | Current operational status of the component, for example On, Off or Standby DeviceComponentOperationalStatus (Extensible) | 
|    parameterGroup | Σ | 0..1 | CodeableConcept | Current supported parameter group DeviceComponentParameterGroup (Extensible) | 
|    measurementPrinciple | Σ | 0..1 | code | other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ MeasmntPrinciple (Required) | 
|    productionSpecification | Σ | 0..* | BackboneElement | Specification details such as Component Revisions, or Serial Numbers | 
|     specType | Σ | 0..1 | CodeableConcept | Type or kind of production specification, for example serial number or software revision DeviceSpecificationSpecType (Extensible) | 
|     componentId | Σ | 0..1 | Identifier | Internal component unique identification | 
|     productionSpec | Σ | 0..1 | string | A printable string defining the component | 
|    languageCode | Σ | 0..1 | CodeableConcept | Language code for the human-readable text strings produced by the device Common Languages (Extensible but limited to All Languages) | 
|  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 --> <identifier><!-- 1..1 Identifier Instance id assigned by the software stack --></identifier> <type><!-- 1..1 CodeableConcept What kind of component it is --></type> <lastSystemChange value="[instant]"/><!-- 0..1 Recent system change timestamp --> <source><!-- 0..1 Reference(Device) Top-level device resource link --></source> <parent><!-- 0..1 Reference(DeviceComponent) Parent resource link --></parent> <operationalStatus><!-- 0..* CodeableConcept Current operational status of the component, for example On, Off or Standby --></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..* Specification details such as Component Revisions, or Serial Numbers --> <specType><!-- 0..1 CodeableConcept Type or kind of production specification, for example serial number or software revision --></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
  "identifier" : { Identifier }, // R!  Instance id assigned by the software stack
  "type" : { CodeableConcept }, // R!  What kind of component it is
  "lastSystemChange" : "<instant>", // Recent system change timestamp
  "source" : { Reference(Device) }, // Top-level device resource link
  "parent" : { Reference(DeviceComponent) }, // Parent resource link
  "operationalStatus" : [{ CodeableConcept }], // Current operational status of the component, for example On, Off or Standby
  "parameterGroup" : { CodeableConcept }, // Current supported parameter group
  "measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
  "productionSpecification" : [{ // Specification details such as Component Revisions, or Serial Numbers
    "specType" : { CodeableConcept }, // Type or kind of production specification, for example serial number or software revision
    "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
}
  "resourceType" : "DeviceComponent",
  // from Resource: id, meta, implicitRules, and language
  // from DomainResource: text, contained, extension, and modifierExtension
  "identifier" : { Identifier }, // R!  Instance id assigned by the software stack
  "type" : { CodeableConcept }, // R!  What kind of component it is
  "lastSystemChange" : "<instant>", // Recent system change timestamp
  "source" : { Reference(Device) }, // Top-level device resource link
  "parent" : { Reference(DeviceComponent) }, // Parent resource link
  "operationalStatus" : [{ CodeableConcept }], // Current operational status of the component, for example On, Off or Standby
  "parameterGroup" : { CodeableConcept }, // Current supported parameter group
  "measurementPrinciple" : "<code>", // other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
  "productionSpecification" : [{ // Specification details such as Component Revisions, or Serial Numbers
    "specType" : { CodeableConcept }, // Type or kind of production specification, for example serial number or software revision
    "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
}
 Turtle Template
@prefix fhir: <http://hl7.org/fhir/> .[ a fhir:DeviceComponent; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:DeviceComponent.identifier [ Identifier ]; # 1..1 Instance id assigned by the software stack fhir:DeviceComponent.type [ CodeableConcept ]; # 1..1 What kind of component it is fhir:DeviceComponent.lastSystemChange [ instant ]; # 0..1 Recent system change timestamp fhir:DeviceComponent.source [ Reference(Device) ]; # 0..1 Top-level device resource link fhir:DeviceComponent.parent [ Reference(DeviceComponent) ]; # 0..1 Parent resource link fhir:DeviceComponent.operationalStatus [ CodeableConcept ], ... ; # 0..* Current operational status of the component, for example On, Off or Standby fhir:DeviceComponent.parameterGroup [ CodeableConcept ]; # 0..1 Current supported parameter group fhir:DeviceComponent.measurementPrinciple [ code ]; # 0..1 other | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+ fhir:DeviceComponent.productionSpecification [ # 0..* Specification details such as Component Revisions, or Serial Numbers fhir:DeviceComponent.productionSpecification.specType [ CodeableConcept ]; # 0..1 Type or kind of production specification, for example serial number or software revision fhir:DeviceComponent.productionSpecification.componentId [ Identifier ]; # 0..1 Internal component unique identification fhir:DeviceComponent.productionSpecification.productionSpec [ string ]; # 0..1 A printable string defining the component ], ...; fhir:DeviceComponent.languageCode [ CodeableConcept ]; # 0..1 Language code for the human-readable text strings produced by the device ]
Changes since DSTU2
| DeviceComponent | |
| DeviceComponent.lastSystemChange | 
 | 
| DeviceComponent.operationalStatus | 
 | 
| DeviceComponent.parameterGroup | 
 | 
| DeviceComponent.productionSpecification.specType | 
 | 
| DeviceComponent.languageCode | 
 | 
See the Full Difference for further information
This analysis is available as XML or JSON.
See R2 <--> R3 Conversion Maps (status = 2 tests that all execute ok. All tests pass round-trip testing and all r3 resources are valid.).
Alternate definitions: Master Definition (XML, JSON), XML Schema/Schematron (for ) + JSON Schema, ShEx (for Turtle)
| Path | Definition | Type | Reference | 
|---|---|---|---|
| DeviceComponent.type | Describes the type of the component. | Preferred | FHIR Device Types | 
| DeviceComponent.operationalStatus | Codes representing the current status of the device - on, off, suspended, etc. | Extensible | DeviceComponentOperationalStatus | 
| DeviceComponent.parameterGroup | Codes identifying groupings of parameters; e.g. Cardiovascular. | Extensible | DeviceComponentParameterGroup | 
| DeviceComponent.measurementPrinciple | Different measurement principle supported by the device. | Required | MeasmntPrinciple | 
| DeviceComponent.productionSpecification.specType | Codes for device specification types such as serial number, part number, hardware revision, software revision, etc. | Extensible | DeviceSpecificationSpecType | 
| DeviceComponent.languageCode | A human language. | Extensible, but limited to All Languages | Common Languages | 
 , but 
 this is not required. See Terminology 
 Systems for the correct representation of these codes in a Coding data type.
, 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 | Expression | In Common | 
| identifier | token | The identifier of the component | DeviceComponent.identifier | |
| 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 |