2nd DSTU Draft For Comment

This page is part of the FHIR Specification (v0.4.0: DSTU 2 Draft). 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

5.9 Resource DeviceComponent - Content

This resource maintained by the Healthcare Devices Work Group

Describes the characteristics, operational status and capabilities of a medical-related component of a medical device.

5.9.1 Scope and Usage

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 (such as MDS, VMD, or Channel) represents 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.

5.9.2 Boundaries and Relationships

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

5.9.3 Background and Context

5.9.3.1 Structure of a DeviceComponent Resource

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 conceptualised using the following main structure:

  1. MedicalDeviceSystem - An actual device that external systems communicate with. In 11073, this is known as a MDS.
  2. VirtualMedicalDevice - A medical-related subsystem of a medical device. It can either be a physical hardware piece or a pure software plugin component of a medical device. In 11073, this is known as a VMD.
  3. Channel - A non-physical component that allows physiological measurement data and its derived data to be grouped in a hierarchical information organization.

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]

5.9.4 Resource Content

Structure

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceComponent DomainResourceAn instance of a medical-related component of a medical device
... type 1..1CodeableConceptWhat kind of component it is
ComponentType (Incomplete)
... identifier 1..1IdentifierInstance id assigned by the software stack
... lastSystemChange 1..1instantRecent system change timestamp
... source 0..1DeviceA source device of this component
... parent 0..1DeviceComponentParent resource link
... operationalStatus 0..*CodeableConceptComponent operational status
... parameterGroup 0..1CodeableConceptCurrent supported parameter group
... measurementPrinciple 0..1codeother | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
Measmnt-Principle (Required)
... productionSpecification 0..*ElementProduction specification of the component
.... specType 0..1CodeableConceptSpecification type
.... componentId 0..1IdentifierInternal component unique identification
.... productionSpec 0..1stringA printable string defining the component
... languageCode 0..1CodeableConceptLanguage code for the human-readable text strings produced by the device

UML Diagram

DeviceComponent (DomainResource)Describes the specific component type as defined in the object-oriented or metric nomenclature partitiontype : CodeableConcept 1..1 « Describes the type of the componentComponentType+ »Describes the local assigned unique identification by the software. For example: handle IDidentifier : Identifier 1..1Describes the timestamp for the most recent system change which includes device configuration or setting changelastSystemChange : instant 1..1Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etcsource : Reference(Device) 0..1Describes the link to the parent resource. For example: Channel is linked to its VMD parentparent : Reference(DeviceComponent) 0..1Indicates current operational status of the device. For example: On, Off, Standby, etcoperationalStatus : CodeableConcept 0..*Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascularparameterGroup : CodeableConcept 0..1Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etcmeasurementPrinciple : code 0..1 « Different measurement principle supported by the deviceMeasmnt-Principle »Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-USlanguageCode : CodeableConcept 0..1ProductionSpecificationDescribes the specification type, such as, serial number, part number, hardware revision, software revision, etcspecType : CodeableConcept 0..1Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use ofcomponentId : Identifier 0..1Describes the printable string defining the componentproductionSpec : string 0..1Describes the production specification such as component revision, serial number, etcproductionSpecification0..*

XML Template

<DeviceComponent xmlns="http://hl7.org/fhir"> doco
 <!-- 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

{doco
  "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

NameFlagsCard.TypeDescription & Constraintsdoco
.. DeviceComponent DomainResourceAn instance of a medical-related component of a medical device
... type 1..1CodeableConceptWhat kind of component it is
ComponentType (Incomplete)
... identifier 1..1IdentifierInstance id assigned by the software stack
... lastSystemChange 1..1instantRecent system change timestamp
... source 0..1DeviceA source device of this component
... parent 0..1DeviceComponentParent resource link
... operationalStatus 0..*CodeableConceptComponent operational status
... parameterGroup 0..1CodeableConceptCurrent supported parameter group
... measurementPrinciple 0..1codeother | chemical | electrical | impedance | nuclear | optical | thermal | biological | mechanical | acoustical | manual+
Measmnt-Principle (Required)
... productionSpecification 0..*ElementProduction specification of the component
.... specType 0..1CodeableConceptSpecification type
.... componentId 0..1IdentifierInternal component unique identification
.... productionSpec 0..1stringA printable string defining the component
... languageCode 0..1CodeableConceptLanguage code for the human-readable text strings produced by the device

UML Diagram

DeviceComponent (DomainResource)Describes the specific component type as defined in the object-oriented or metric nomenclature partitiontype : CodeableConcept 1..1 « Describes the type of the componentComponentType+ »Describes the local assigned unique identification by the software. For example: handle IDidentifier : Identifier 1..1Describes the timestamp for the most recent system change which includes device configuration or setting changelastSystemChange : instant 1..1Describes the link to the source Device that contains administrative device information such as manufacture, serial number, etcsource : Reference(Device) 0..1Describes the link to the parent resource. For example: Channel is linked to its VMD parentparent : Reference(DeviceComponent) 0..1Indicates current operational status of the device. For example: On, Off, Standby, etcoperationalStatus : CodeableConcept 0..*Describes the parameter group supported by the current device component that is based on some nomenclature, e.g., cardiovascularparameterGroup : CodeableConcept 0..1Describes the physical principle of the measurement. For example: thermal, chemical, acoustical, etcmeasurementPrinciple : code 0..1 « Different measurement principle supported by the deviceMeasmnt-Principle »Describes the language code for the human-readable text string produced by the device. This language code will follow the IETF language tag. Example: en-USlanguageCode : CodeableConcept 0..1ProductionSpecificationDescribes the specification type, such as, serial number, part number, hardware revision, software revision, etcspecType : CodeableConcept 0..1Describes the internal component unique identification. This is a provision for manufacture specific standard components using a private OID. 11073-10101 has a partition for private OID semantic that the manufacture can make use ofcomponentId : Identifier 0..1Describes the printable string defining the componentproductionSpec : string 0..1Describes the production specification such as component revision, serial number, etcproductionSpecification0..*

XML Template

<DeviceComponent xmlns="http://hl7.org/fhir"> doco
 <!-- 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

{doco
  "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

5.9.4.1 Terminology Bindings

PathDefinitionTypeReference
DeviceComponent.type Describes the type of the componentFixedRTM Management Service
DeviceComponent.measurementPrinciple Different measurement principle supported by the deviceFixedhttp://hl7.org/fhir/measurement-principle

5.9.5 Notes:

  • The correct codes for the medical device system (MDS), virtual medical device (VMD), and Channel will be specified in the profiles for specific types of device component. Generally, these codes are registered in the RTM Management service, but this is not required. See Terminology Systems for the correct representation of these codes in a Coding datatype

5.9.6 Search Parameters

Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.

NameTypeDescriptionPaths
parentreferenceThe parent DeviceComponent resourceDeviceComponent.parent
(DeviceComponent)
sourcereferenceThe device sourceDeviceComponent.source
(Device)
typetokenThe device component typeDeviceComponent.type