Personal Health Device Implementation Guide
2.1.0 - STU 2.0 International flag

Personal Health Device Implementation Guide, published by HL7 International / Health Care Devices. This guide is not an authorized publication; it is the continuous build for version 2.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/phd/ and changes regularly. See the Directory of published versions

Resource Profile: PhdPatient

Official URL: http://hl7.org/fhir/uv/phd/StructureDefinition/PhdPatient Version: 2.1.0
Standards status: Trial-use Maturity Level: 3 Computable Name: PhdPatient

The patient information reported from personal health gateways (PHG)

All PHD related Observation resources reference a Patient resource containing a minimal set of information sufficient to identify the patient. However, it may require additional information to link the patient to a person that is only available to an authorized entity. In this manner, PHMI can be protected.

The PHD Patient Profile may or may not include patient identifiable information depending on a particular need. In a typical upload, the PHD will not provide patient information, and the PHG may need to obtain patient information out-of-band through means other the PHD Patient Profile. In Remote Patient Monitoring, use cases range from the necessity to completely protect Patient Health Information (PHI) to that where no protection at all is deemed necessary. This profile supports all such options. One upload option is that a Patient Resource is never generated and no patient information is present on the PHG. Instead, the health care provider gives the PHG the ‘logical id’ of a Patient Resource that may or may not exist on the destination server. The PHG uses this logical id in the Observation.subject element with the assumption that the server will understand the reference when the Observation is received.

If a Patient Resource is to be created, this profile only requires that the Patient.identifier.system, Patient.identifier.value, Patient.identifier.type.coding.code and Patient.identifier.type.coding.system be populated. The Patient.name element is optional. This approach still affords PHI protection since the values in the required fields cannot be associated to a person without some kind of dictionary, usually only available to the health care provider.

The minimum requirement does not prevent the use of the Patient.name or any other element in the Patient resource. There are also use cases where exposure of PHI is desired just out of convenience. For example, a cross country coach tracking of the miles run by members of a cross country team. The athletes all wear fitness devices. The data is uploaded to a server where the coach can keep track of the training regime to check development and plan future workouts given upcoming races. The information is accessible to all team members who tend to be equally as interested in their mileage statistics. Protecting this type of fitness information is probably not worth the effort and inconvenience associated with such protection measures.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Patient 0..* Patient Information about an individual or animal receiving health care services
dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources
dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
dom-5: If a resource is contained in another resource, it SHALL NOT have a security label
dom-6: A resource should have narrative for robust management
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
ele-1: All FHIR elements must have a @value or children
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
... identifier Σ 1..* Identifier An identifier for this patient
ele-1: All FHIR elements must have a @value or children
.... use ?!Σ 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .


ele-1: All FHIR elements must have a @value or children
.... type Σ 1..1 CodeableConcept Description of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.


ele-1: All FHIR elements must have a @value or children
..... Slices for coding Σ 1..* Coding Code defined by a terminology system
Slice: Unordered, Open by value:system
ele-1: All FHIR elements must have a @value or children
...... coding:v2Coding Σ 1..1 Coding Code defined by http://terminology.hl7.org/CodeSystem/v2-0203
ele-1: All FHIR elements must have a @value or children
....... system Σ 1..1 uri Identity of the terminology system
ele-1: All FHIR elements must have a @value or children
Fixed Value: http://terminology.hl7.org/CodeSystem/v2-0203
....... code Σ 1..1 code a code from http://terminology.hl7.org/CodeSystem/v2-0203
ele-1: All FHIR elements must have a @value or children
.... system Σ 1..1 uri The system associated with the value. For XDSb this would be the enterprise identifier (an OID). For unknown patient 'http://terminology.hl7.org/CodeSystem/v2-0004'
ele-1: All FHIR elements must have a @value or children
Example General: http://www.acme.com/identifiers/patient
.... value Σ 1..1 string The patient identifier under the jurisdiction indicated by the system element. For unknown patient this would be 'U'.
ele-1: All FHIR elements must have a @value or children
Example General: 123456
... deceased[x] ?!Σ 0..1 Indicates if the individual is deceased or not
ele-1: All FHIR elements must have a @value or children
.... deceasedBoolean boolean
.... deceasedDateTime dateTime
... link ?!Σ 0..* BackboneElement Link to another patient resource that concerns the same actual person
ele-1: All FHIR elements must have a @value or children
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
ele-1: All FHIR elements must have a @value or children
ext-1: Must have either extensions or value[x], not both
.... other Σ 1..1 Reference(Patient | RelatedPerson) The other patient or related person resource that the link refers to
ele-1: All FHIR elements must have a @value or children
.... type Σ 1..1 code replaced-by | replaces | refer | seealso
Binding: LinkType (required): The type of link between this patient resource and another patient resource.


ele-1: All FHIR elements must have a @value or children

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Patient.identifier.userequiredIdentifierUse
http://hl7.org/fhir/ValueSet/identifier-use|4.0.1
from the FHIR Standard
Patient.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Patient.link.typerequiredLinkType
http://hl7.org/fhir/ValueSet/link-type|4.0.1
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorPatientIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorPatientIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorPatientIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorPatientIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practicePatientA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

 

Other representations of profile: CSV, Excel, Schematron

Notes:

Mapping

A Patient resource for a known or an unknown patient shall be created by the PHG according to the following mapping:

patient information FHIR mapping Value for a known patient Value for an unknown patient
patient identifier Patient.identifier.value Generally a code from the health care provider identifying the patient 'U'
health care provider identifier Patient.identifier.system Generally a code identifying the health care provider http://terminology.hl7.org/CodeSystem/v2-0004
fixed coding system Patient.identifier.type.coding.system http://terminology.hl7.org/CodeSystem/v2-0203 http://terminology.hl7.org/CodeSystem/v2-0203
code Patient.identifier.type.coding.code A code such as 'MR' (medical record) or 'LR' (local registry) from the above coding system 'U'

Examples:

An example of a PHD patient mapping for a known patient is given here. The example contains an optional name element.
An example of a PHD patient mapping for an unknown patient is given here. The example contains an optional name element.