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

Phg DeviceComponent Profile

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:

NameFlagsCard.Type
profile1..
phgProfile1..1Fixed Value
extension
MyExtensionExtension
identifier..*
system1..Fixed Value
value1..
system1..
value1..
coding1..
system1..Fixed Value
code1..Fixed Value
display
lastSystemChange..0
source..0
parent..0
operationalStatus
parameterGroup
measurementPrinciple
coding1..
system1..Fixed Value
code1..
display
system1..Fixed Value
code1..
productionSpec1..
languageCode

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.

Meta Data Profile

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.

System Identifier

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.

Device Type

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.

Parent

There is no parent element in this profile.

Production Specification and System Model

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.

Property

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.

'Reg-Cert-Data-List' Contributions

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"

Time Properties

A PHG is required to be capable of supporting synchronization to UTC and knowning the offset to local time.

Time Synchronization

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:

  • DeviceComponent.property.type.coding.code="68220"
  • DeviceComponent.property.type.coding.system="urn.iso.std.iso:11073:10101"
  • DeviceComponent.property.type.coding.display="MDC_TIME_SYNC_PROTOCOL" (optional)
  • DeviceComponent.property.valueCodeableConcept.coding.code="32-bit code for sync method"
  • DeviceComponent.property.valueCodeableConcept.coding.system="urn.iso.std.iso:11073:10101"
  • DeviceComponent.property.valueCodeableConcept.coding.display="the ref id" (optional)
Time Synchronization Accuracy

The time synchronization accuracy should be reported if known in microseconds. The mapping is as follows:

  • DeviceComponent.property.type.coding.code="68221"
  • DeviceComponent.property.type.coding.system="urn.iso.std.iso:11073:10101"
  • DeviceComponent.property.type.coding.display="MDC_TIME_SYNC_ACCURACY" (optional)
  • DeviceComponent.property.valueQuantity.value="time sync accuracy"
  • 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)
Time Resolution

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)

Consumer of the PHD DeviceComponent Profile

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"

Phg DeviceComponent JSON Example

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"
			}]
		}]
	}]
}