This page is part of the Personal Health Device FHIR IG (v0.1.0: STU 1 Draft) based on FHIR R3. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions
The properties and specifications of the PHG are reported in the DeviceComponent. A PHG does not have an MDS object, but for the purposes of reporting the PHG information like its system identifier, time synchronization, and serial number these values are treated as if they came from MDS-attributes in an MDS object.
Unlike the PHD where one reports the information if delivered, in the PHG case far fewer fields are required to be reported. The following table summarizes the required fields and their mapping:
'PHG MDS' field | FHIR element |
---|---|
System Identifier | DeviceComponent.identifier 1 |
Time sync protocol | DeviceComponent.property |
The transport address is not required. It is still strongly recommended that the transport address is reported as it is often beneficial to consumers. Most PHD-PHG transports provide a means of obtaining a transport address or an equivalent identifier such as a USB VID and PID.
Similar to the PHD case, when CodeableConcept data types are used it is recommended to put the MDC reference identifier as part of the display element when the system element indicates the MDC coding system "urn.iso.std.iso:11073:10101".
The structure definition for the Phg DeviceComponent Profile is shown below:
Name | Flags | Card. | Type | |
---|---|---|---|---|
DeviceComponent | DeviceComponent | Definition: The characteristics, operational status and capabilities of the PHG. Unlike the PHD, there is only a single resource representing the PHG. This resource is referenced by the phdParentDeviceComponent. | ||
meta | 1.. | |||
profile | 1.. | Sliced: Unordered, Open, by PhgDeviceComponent(Value) | ||
phgProfile | 1..1 | Fixed Value | Fixed Value: PhgDeviceComponent | |
extension | Sliced: Unordered, Open, by url(Value) | |||
MyExtension | Extension | Data Type | ||
identifier | ..* | Short description: Information that uniquely describes the PHG Definition:The locally assigned unique identification of the device that is semantically meaningful outside of the FHIR resource context. An example would be the IEEE EUI-64 System-Id or transport address. For PHGs the systemIdentifier is required and the transportAddressIdentifier is highly recommended as this is what most end users see and can obtain from the PHG itself or PHG packaging. In future versions of FHIR the cardinality of this element will become [0..*] and this element will be used to report the system id and optionally the transport address. Ordered, Open, by system(Value) | ||
systemIdIdentifier | 1.. | Short description: IEEE EUI-64 identifier Definition:This entry contains the IEEE EUI-64. If absent set to all zeros. | ||
system | 1.. | Fixed Value | Short description: IEEE EUI-64 identifier Definition:Identifies the system as an IEEE EUI. urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680 | |
value | 1.. | Definition: The System id as an 8-byte HEX string where each byte is separated by dashes, for example FE-ED-AB-EE-DE-AD-77-C3. The formatting is specified in the IEEE document Guidelines for 64-bit Global Identifier. To allow the mapping of naughty, non-compliant proprietary devices that do not provide a system id, the value is set to all zeros in the same format, 00-00-00-00-00-00-00-00 | ||
transportAddressIdentifier | Short description: Transport address identifier Definition:This entry contains the transport address, for example the Bluetooth, ZigBee, USB, or mac address. USB does not have an 'address' as it is a point to point wired protocol. However, it does have a Vendor identification and Production identification number which together uniquely define the unit. For USB transports, the VID.PID in HEX is used as the transport identifier. | |||
system | 1.. | |||
value | 1.. | Definition: The transport address. If Bluetooth, use an EUI-48 such as 00-E5-DE-AD-77-C3. If a USB device use the VID.PID as HEX such as 0043.F90D. If a ZigBee address use an EUI-64 as with the system id. If a TCP/IP address use the standard IP address format such as 192.168.127.4 Transport addresses are supposed to be unique for a given device. | ||
type | Definition: States that this is a Personal Health Gateway (PHG) formally known as an AHD There is a special 11073 code that indicates a PHG. It's reference id was made at the time PCHA (then Continua) called a PHG an AHD and since the id is in the system it cannot be changed. | |||
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Type | 1..1 | Definition: The 11073 10101 code for the PHD specialization. This coding is provided by the System-Type-Spec-List attribute. Note that PoCDs do not have a System-Type-Spec-List but express specializations in different VMD objects. | ||
system | 1.. | Fixed Value | Short description: Identifies IEEE 11073 10101 Definition:This value identifies the IEEE 11073 10101 coding system urn:iso:std:iso:11073:10101 | |
code | 1.. | Fixed Value | Short description: PHG code Definition:The code indicating the entity is a PHG There is only one possible entry as there is only a single type of PHG The reference id for this code is MDC_MOC_VMS_MDS_AHD 531981 | |
display | Definition: A human readable display descrbing the meaning of the code. This element should contain the reference identfier for the reported specialization code. | |||
lastSystemChange | ..0 | Definition: The timestamp for the most recent system change which includes device configuration or setting change. The PHG is static. A PHG is static and does not change. The absence of this element indicates a static unit. | ||
source | ..0 | Comments: PHGs are a gateway for PHD data and are not a subset of any further entity by protocol. | ||
parent | ..0 | Definition: The PHG is at the top and has no parent. The PHG serves as a gateway for the PHD data. It has no parent in the sense of a PoCD hierarchy. This element shall not be present. | ||
operationalStatus | Comments: OperationalStatus for the MDS, VMD, or Channel will be bound to a specific ValueSet that is defined in its profile. If used, a PHD is considered to be always on | |||
parameterGroup | Comments: Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. This information is not available by protocol from the PHD and its use is up to the application. | |||
measurementPrinciple | Comments: This information is not available fron PHD devices by protocol. Its use is up to the implementation. | |||
productionSpecification | Definition: The production specification such as component revision, serial number, etc. For the 11073 20601 Personal Health Device, the production specification entries come from the Production-Specification, System-Model, and Reg-Cert-Data-List attributes. There will be one productionSpecification entry for each item to be reported. All the PHD productionSpecification entries are strings and have IEEE 11073-10101 codes that define which production specification the string represents. Compliant PHDs will always have at least some entries for this element. If the PHD reports one or more such entries, they shall be recorded here. However, to allow the mapping of naughty proprietary devices, this element is made technically optional. | |||
specType | 1.. | |||
coding | 1.. | Sliced: Ordered, Open, by system(Value) | ||
11073Type | 1..1 | Short description: The 11073-10101 code Definition:The 11073-10101 code defining what the productionSpec is 11073 10101 codes have been defined for the Production-Specification and System-Model sub entries for use in V2 messaging. Though FHIR has provided its own set of codes based upon the names of the 11073-* Production-Specification.spec-type entry, the 11073-10101 codes are used since they are ubiquitous in these PCHA-related profiles and it helps accelerate the acceptance of the MDC coding system in HL7. | ||
system | 1.. | Fixed Value | Short description: Specifies IEEE 11073 10101 Definition:Identifies the IEEE 11073 10101 coding system These codes are not seen on the wire between the PHD and the PHG. They are seen on the wire in PCD-01 messages. urn:iso:std:iso:11073:10101 | |
code | 1.. | Short description: actual code Definition:The 32 bit code identifying what the string in the DeviceComponent.productionSpecification.productionSpec element is. Need to identify what the reported string value represents The currently defined codes used in this element are as follows: FIELD CODE reference identifierModel number 531969 MDC_ID_MODEL_NUMBER Manufacturer name 531970 MDC_ID_MODEL_MANUFACTURER The above come from the 'pretend' System-Model attribute Unspecified 531971 MDC_ID_PROD_SPEC_UNSPECIFIED Serial number 531972 MDC_ID_PROD_SPEC_SERIAL Part number 531973 MDC_ID_PROD_SPEC_PART Hardware revision 531974 MDC_ID_PROD_SPEC_HW Software revision 531975 MDC_ID_PROD_SPEC_SW Firmware revision 531976 MDC_ID_PROD_SPEC_FW Protocol 531977 MDC_ID_PROD_SPEC_PROTOCOL Global Medical Device Nomenclature (GMDN) 531978 MDC_ID_PROD_SPEC_GMDN The above come from the 'pretend' Production-Specification attribute Continua version 532352 MDC_REG_CERT_DATA_CONTINUA_VERSION The above comes from the 'pretend' Continua Reg-Cert-Data-List attribute There may be more fields added in future versions of the 10101 specification. | ||
display | Definition: A human readable display descrbing the meaning of the code. This element should contain the reference identfier for the reported code. | |||
fhirCoding | ..1 | Short description: The IEEE concept in the DeviceSpecificationSpecType coding system Definition:THe IEEE concept defined in the 11073Type coding element expressed in the DeviceSpecificationSpecType coding system. FHIR requires this element to be present IF the production specification being reported is included in the DeviceSpecificationSpecType value set. Currently that is all the possible entries defined in the IEEE 11073 ProductionSpecification attribute. | ||
system | 1.. | Fixed Value | Fixed Value: http://hl7.org/fhir/specification-type | |
code | 1.. | Definition: A symbol in the syntax defined by the DeviceSpecificationSpecType system. FHIR requires this code if the specType being coded is a member of this value set. | ||
productionSpec | 1.. | |||
languageCode | Comments: Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. This infomration is not available by protocol from the PHD and its use is up to the application |
A JSON example is given in Phg DeviceComponent JSON Example
This structure definition is missing the property element as it is based upon a tool that does not yet support version 3.2.0 of FHIR. The structure definition will be updated when support for 3.2.0 is available.
The uploader shall populate the DeviceComponent.meta.profile with http://pchalliance.org/phdfhir/StructureDefinition/PhgDeviceComponent indicating this resource was generated following the PHD Implementation Guide.
All 11073 20601 PHGs are required to have a system identifier. It is an EUI-64 consisting of 8 bytes. The system id is mapped to the DeviceComponent.identifier.value element as a sequence of 8 2-digit bytes as HEX separated by dashes without the '0x' prefix commonly used in programming languages. An example of such a string is FE-ED-AB-EE-DE-AD-77-C3. It shall be reported.
It is strongly encouraged to also report the transport address in a second identifier element. The transport addresses are as follows:
transport | format | example |
---|---|---|
Bluetooth | EUI-48: ab-cd-ef-gh-ij-kl | 00-E5-DE-AD-77-C3 |
ZigBee | EUI-64: ab-cd-ef-gh-ij-kl-mn-op | 36-ED-9A-EE-DE-AD-77-C3 |
USB | vid.pid | 0043.F90D |
The System-Id entry shall be first and the transport entry, if present, shall be second.
The PHG always has the same type given by the MDC code 531981. The reference identifier for this code is MDC_MOC_VMS_MDS_AHD. "AHD" is the previous name Continua gave to what is now known as the PHG. However, reference identifiers are normative and once accepted, they cannot change.
There is no parent element in this profile.
The treatment of these fields is the same as in the Phd Parent DeviceComponent Profile. One should read that section in Phd Parent DeviceComponent Profile before proceding if not already familiar with it.
The final mapping of MDS attributes to the DeviceComponent.productionSpecification element is similar to that for the PHD and shown in the following table:
item to report | FHIR element DeviceComponent.productionSpecification. |
---|---|
model-number | specType.coding.code="531969" specType.coding.system="urn.iso.std.iso:11073:10101" productionSpec="model-number" |
manufacturer-name | specType.coding.code="531970" specType.coding.system="urn.iso.std.iso:11073:10101" productionSpec="manufacturer-name" |
unspecified production info | specType.coding.code="531971" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="unspecified" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="unspecified" |
serial-number | specType.coding.code="531972" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="serial-number" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="serial-number" |
part-number | specType.coding.code="531973" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="part-number" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="part-number" |
hardware-revision | specType.coding.code="531974" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="hardware-revision" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="hardware-revision" |
software-revision | specType.coding.code="531975" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="software-revision" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="software-revision" |
firmware-revision | specType.coding.code="531976" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="firmware-revision" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="firmware-revision" |
protocol-revision | specType.coding.code="531977" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="protocol-revision" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="protocol-revision" |
prod-spec-gmdn | specType.coding.code="531978" specType.coding.system="urn.iso.std.iso:11073:10101" specType.coding.code="prod-spec-gmdn" specType.coding.system="http://hl7.org/fhir/specification-type " productionSpec="prod-spec-gmdn" |
continua-version | specType.coding.code="532352" specType.coding.system="urn.iso.std.iso:11073:10101" productionSpec="continua-version" |
Given that a PHG is often an application hosted on a platform that may support several applications, it may not make sense to report many of the above fields. What is reported is up to the application.
The property element is introduced in version 3.2.0 of FHIR. This element is used to report the regulation status, Continua certified PAN (Personal Area Network) and H&FS (Health and Fitness) interfaces, and the static time properties such as synchronization state, synchronization accuracy and the resolution of the time clock. It is not necessary to report the type of time clock; PHGs are always capable of using Base-Offset time.
In addition to the Continua version reported in the DeviceComponent.productionSpecification, one may also report the list of certified PAN interfaces, list of certified H&FS interfaces, and regulation status.
The Continua codes for the PAN interface are detailed in the section Phd Parent DeviceComponent Profile section and are not repeated here. However, the H&FS codes are only present on the PHG. The following interfaces are defined:
Health & Fitness Device Class | Health and Fitness interface code | |
---|---|---|
PCD-01 web services | 0 | observation-upload-soap |
Consent enabled PCD-01 web service | 1 | consent-enabled-soap |
Capability exchange | 2 | capabilities |
PCD-01 upload using hData | 3 | observation-upload-hdata |
Consent enabled PCD-01 using hData | 4 | consent-enabled-hdata |
Questionnaire CDA | 5 | questionnaire |
Authenticated Persistent Sessions | 6 | aps |
FHIR resource upload | 7 | observation-upload-fhir |
The mapping of these Reg-Cert-Data-List attribute values to the DeviceComponent.property element is as follows:
items to report | FHIR mapping |
---|---|
list of certified PAN interfaces | property.type.coding.code="532353" property.type.coding.system="urn.iso.std.iso:11073:10101" property.valueCodeableConceptN.coding.code="list-of-PAN codesN" property.valueCodeableConceptN.coding.system="placeholder/fhir/reg-cert-codes" |
list of certified H&FS interfaces | property.type.coding.code="532355" property.type.coding.system="urn.iso.std.iso:11073:10101" property.valueCodeableConceptN.coding.code="list-of-H&FS-codesN" property.valueCodeableConceptN.coding.system="placeholder/fhir/reg-cert-wan-codes" |
regulation status | property.type.coding.code="532354.0" property.type.coding.system="placeholder/fhir/IEEE.ASN1" property.valueCodeableConcept.coding.code="Y/N" property.valueCodeableConcept.coding.system="http://hl7.org/fhir/v2/0136 " property.valueCodeableConcept.coding.display="Y=unregulated N=regulated" |
A PHG is required to be capable of supporting synchronization to UTC and knowning the offset to local time.
It is required to report the time synchronization protocol. It indicates the method and state of the PHG time synchronization. It is one of the values in the following table:
Time synchronziation code | Reference identifier | description |
---|---|---|
532224 | MDC_TIME_SYNC_NONE | An uncalibrated and unsynchronized local clock source |
532234 | MDC_TIME_SYNC_EBWW | A manually set time, by ‘eyeball and wristwatch’ |
532225 | MDC_TIME_SYNC_NTPV3 | Network Time Protocol Version 3.0 (RFC 1305) |
532226 | MDC_TIME_SYNC_NTPV4 | Network Time Protocol Version 4.0 (under dev) |
532227 | MDC_TIME_SYNC_SNTPV4 | Simple Network Time Protocol v4 (RFC 2030) |
532228 | MDC_TIME_SYNC_SNTPV4330 | Simple Network Time Protocol v4 (RFC 4330) |
532229 | MDC_TIME_SYNC_BTV1 | Bluetooth Medical Device Profile |
532235 | MDC_TIME_SYNC_USB_SOF | Synced to the 1kHz USB "start-of-frame" clock |
532230 | MDC_TIME_SYNC_RADIO | Atomic Clock synchronization through RF |
532231 | MDC_TIME_SYNC_HL7_NCK | Synchronized via Health Level 7 NCK (network clock) |
532232 | MDC_TIME_SYNC_CDMA CDMA | mobile telecommunications synchronization |
532233 | MDC_TIME_SYNC_GSM | GSM - Network Identity and Time Zone (NITZ) |
Similar to the PHD, if the PHG has, for some reason, lost its synchronization, the value reported is 532224 or no time synchronization.
The uploader maps the state of synchronization to the DeviceComponent.property as follows:
The time synchronization accuracy should be reported if known in microseconds. The mapping is as follows:
The PHG may report the resolution of its time clock. If it does it reports it in units of microseconds as follows:
DeviceComponent.property element | value |
---|---|
DeviceComponent.property.type.coding.code | "68226" (base-offset time) |
DeviceComponent.property.type.coding.system | "urn.iso.std.iso:11073:10101" |
DeviceComponent.property.type.coding.display | "MDC_TIME_RES_BO" (optional) |
DeviceComponent.property.valueQuantity.value | time resolution |
DeviceComponent.property.valueQuantity.system | "urn.iso.std.iso:11073:10101" |
DeviceComponent.property.valueQuantity.code | "264339" (MDC code for microseconds) |
DeviceComponent.property.valueQuantity.units | "us" (Optional UCUM string) |
For the Consumer of this profile the following table gives a quick guide to the main features
item | Location |
---|---|
Type of Device | DeviceComponent.type.coding.code="531981" |
Manufacturer name | if DeviceComponent.productionSpecification.specType.coding.code="531970" then DeviceComponent.productionSpecification.productionSpec="manufacturer name" |
Model number | if DeviceComponent.productionSpecification.specType.coding.code="531969" then DeviceComponent.productionSpecification.productionSpec="model number" |
serial number | if DeviceComponent.productionSpecification.specType.coding.code="531972" then DeviceComponent.productionSpecification.productionSpec="serial number" |
system identifier | if DeviceComponent.identifier.system="urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680" then DeviceComponent.identifier.value="system id as 8 2-digit HEX values separated by dashes" |
time synchronization | if DeviceComponent.property.type.coding.code="68220" then DeviceComponent.property.valueCodeableConcept.coding.code="code for time synchronization" |
The following is an example of a Phg DeviceComponent resource. The resource is generated based upon FHIR version 3.2.0 and will not render until the tool is updated to support that version. In the mean time a raw pre-formatted example is displayed here.
{ "resourceType": "DeviceComponent", "id": "SysId-ecde3d4e58532d31", "identifier": [{ "system": "urn:oid:1.2.840.10004.1.1.1.0.0.1.0.0.1.2680", "value": "ec-de-3d-4e-58-53-2d-31", "assigner": { "display": "EUI-64" } }], "type": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "531981", // Note that the device 'type' is fixed! "display": "MDC_MOC_VMS_MDS_AHD" }] }, "productionSpecification": [{ "specType": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "532352", "display": "MDC_REG_CERT_DATA_CONTINUA_VERSION: Continua version" }] }, "productionSpec": "5.0" }], "property": [{ "type": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "68220", "display": "MDC_TIME_SYNC_PROTOCOL: Time synchronization protocol" }] }, "valueCode": [{ "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "532226", "display": "MDC_TIME_SYNC_NTPV4: " }] }] }, { "type": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "532353", "display": "MDC_REG_CERT_DATA_CONTINUA_CERT_DEV_LIST: certified device list as transport-specialization combo" }] }, "valueCode": [{ "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-codes", "code": "4" }] }] }, { "type": { "coding": [{ "system": "urn:iso:std:iso:11073:10101", "code": "532355", "display": "MDC_REG_CERT_DATA_CONTINUA_AHD_CERT_LIST: certified Upload classes" }] }, "valueCode": [{ "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-wan-codes", "code": "0" }] }, { "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-wan-codes", "code": "3" }] }, { "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-wan-codes", "code": "7" }] }, { 12-1209: 14: 01.1615982-6002/?I/System.out: Info: "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-wan-codes", "code": "2" }] }, { "coding": [{ "system": "http://pcha.org/phd/documents/reg-cert-wan-codes", "code": "6" }] }] }, { "type": { "coding": [{ "system": "http://hl7.org/fhir/IEEE.ASN1", "code": "532354.0", "display": "regulation-status" }] }, "valueCode": [{ "coding": [{ "system": "http://hl7.org/fhir/v2/0136", "code": "Y", "display": "Device is not regulated" }] }] }] }