PHDC Overview

Data Characteristics

Personal healthcare devices, due to their nature, may need to send data in 3 different ways:

  • Episodic: data is sent sporadically each time the user accomplishes a specific action.
  • Store and forward: data is collected and stored on the device while it is not connected. The data is then forwarded to the host once it is connected.
  • Continuous: data is sent continuously to the host for continuous monitoring.

Considering these needs, data transfers will be defined in terms of latency and reliability. PHDC defines three levels of reliability and four levels of latency:

  • Reliability: Good, better and best.
  • Latency: Very-high, high, medium and low.

For example, a device that sends continuous data for monitoring will send them as low latency and good reliability.

PHDC does not support all latency/reliability combinations. Here is a list of supported combinations:

  • Low latency, good reliability.
  • Medium latency, good reliability.
  • Medium latency, better reliability.
  • Medium latency, best reliability.
  • High latency, best reliability.
  • Very high latency, best reliability.

These combinations are called quality of service (QoS).

Table - QoS Levels Description
QoS (Latency/reliability)LatencyRaw info rateTransfer direction(s)Typical use
Low / good< 20ms50 bits/sec to 1.2M bits/secINReal-time monitoring, with fast analog sampling rate.
Medium / good< 200ms50 bits/sec to 1.2M bits/sIN
Medium / better< 200ms10s of byte rangeINData from measured parameter collected off-line and replayed or sent real-time.
Medium / best< 200ms10s of byte rangeIN, OUTEvents, notifications, request, control and status of physiological and equipment functionality.
High / best< 2s10s of byte rangeIN, OUTPhysiological and equipment alarms.
Very high / best< 20s10s of byte range to gigabytes of dataIN, OUTTransfer reports, histories or off-line collection of data.


Transfers from a PHDC device will also contain a preamble, in which there is the possibility to include opaque data. Opaque data is data that should not be treated as actual data, but instead acts as a header, allowing the receiving host application to know what type of data it receives, for example. See Table - Metadata Preamble for more details about the content of a preamble.

Operational Model

The requirements for data transfer QoS in personal healthcare devices can be accomplished by PHDC using bulk endpoints and, optionally, an interrupt endpoint. Table - Endpoint - QoS Mapping and Figure - QoS - Endpoint Mapping show the mapping between QoS and endpoint types.

Table - Endpoint - QoS Mapping
EndpointUsage
Bulk OUTAll QoS host to device data transfers.
Bulk INVery high, high and medium latency device to host data transfers.
Interrupt INLow latency device to host data transfers.


Figure - QoS - Endpoint Mapping

QoS - Endpoint Mapping


PHDC does not define a protocol for data and messaging. It is only intended to be used as a communication layer. Developers can use either data and messaging protocol defined in ISO/IEEE 11073-20601 base protocol or a vendor-defined protocol. Figure - Personal Healthcare Device Software Layers shows the different software layers needed in a personal healthcare device.

Figure - Personal Healthcare Device Software Layers

Personal Healthcare Device Software Layers


Since transfers having different QoS will have to share a single bulk endpoint, host and device need a way to inform each other what is the QoS of the current transfer. A metadata message preamble will then be sent before a single or a group of regular data transfers. This preamble will contain the information listed in Table - Metadata Preamble.

Table - Metadata Preamble
OffsetFieldSize (bytes)Description
0aSignature16Constant used to verify preamble validity. Always set to “PhdcQoSSignature” string.
16bNumTransfers1Count of following transfers to which QoS setting applies.
17bQoSEncodingVersion1QoS information encoding version. Should be 0x01.
18bmLatencyReliability1Bitmap that refers to latency / reliability bin for data.
19bOpaqueDataSize1Length, in bytes, of opaque data.
20bOpaqueData[0 .. MaxPacketSize - 21]Optional data usually application specific that is opaque to the class.