DoF DeviceComponent "property" proposal
Proposed new DeviceComponent element (Brian Reinhold)
The proposed element is based upon the extension since IEEE/HCD has already specified codes for the needed device properties. The proposed element is
DeviceComponent.property
The data type is as follows
property.name CodeableConcept [1..1] property.value[x] [0..*] The 'many' is only appropriate for the same value[x] option.
The value[x] would have two possible choices, valueQuantity, and valueCodeableConcept. These two data types seem to cover almost everything that someone would reasonably consider a device property.
The current list of MDC codes for device properties used in V2 PCD-01 messages are
MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST MDC_REG_CERT_DATA_CONTINUA_REG_STATUS MDC_REG_CERT_DATA_CONTINUA_AHD_CERT_LIST MDC_MOC_VMS_MDS_AHD MDC_TIME_SYNC_PROTOCOL MDC_TIME_CAP_STATE MDC_TIME_RES_REL_HI_RES MDC_TIME_RES_REL MDC_TIME_RES_ABS MDC_TIME_RES_BO MDC_TIME_SYNC_ACCURACY
These codes are not transmitted from the PHD via protocol.
One also has the ASN1 code set as defined for any property based upon BITs fields such as the Mds-Time-Info time capabilities field. Since the ASN1 code is based upon the IEEE identifier and the Mder bit, the MDC code is implicitly present in the overall code; for example the code representing the support of a real time clock is MDC_TIME_CAP_STATE.mds-time-capab-real-time-clock in its 'reference identifier' form and 68219.0 as the actual code.
Examples
Here is an example of how the Continua certified device list would be encoded (value[x] is a valueCodeableConcept): Note that the set of codes used is defined by PCHA and we will need a way to specify this coding system.
DeviceComponent .property.name.coding.code=“532353” .system=“urn:iso:std:iso:11073:10101” .display=“MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST” .property.valueCodeableConcept.coding.code=“8196” .system=“pcha pan cert codes” .display=“Pulse Ox over USB” .property.valueCodeableConcept.coding.code=“16388” .system=“pcha pan cert codes” .display=“Pulse Ox over HDP”
Here is an example of how the time capabilities which is an ASN1 BITs field would be encoded (value[x] is a valueCodeableConcept): Here the 'master' CodeableConcept defining the property is the Mapped ASN1 bit and the value is whether or not it has been set. Again, the system for the ASN1 mapping has yet to be defined.
DeviceComponent .property.name.coding.code=“68219.0” .system=“asn1 vocabulary set” .display=“MDC_TIME_CAP_STATE.mds-time-capab-real-time-clock: Real time clock support” .property.valueCodeableConcept.coding.code=“y” .system=“http://hl7.org/fhir/v2/0136” .display=“Supports a real time clock”
Here is an example of how the resolution of the time clock would be encoded (value[x] is a valueQuantity):
DeviceComponent .property.name.coding.code=“68222” .system=“urn:iso:std:iso:11073:10101” .display=“MDC_TIME_RES_ABS: The real-time clock resolution” .property.valueQuantity.value=“500000” .units=“us” // UCUM code for microseconds .code=“264339” .system=“urn:iso:std:iso:11073:10101”
Remaining TODOs
1. Add DeviceComponent to allowed Observation.device resource list
2. Define code systems for
a. ASN1 vocabulary set (done but not formally registered) b. Continua PAN transport/specialization certification codes c. Continua Services upload codes