Skip to content

Commit a0ea11c

Browse files
authored
Merge pull request #72 from HL7/ACOM-GHS-support
another update of the pub request & editorials
2 parents 0118e55 + d993bf3 commit a0ea11c

19 files changed

Lines changed: 38 additions & 32 deletions

FHIR-phd.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<specification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ballotUrl="http://hl7.org/fhir/uv/phd/2.1.0" ciUrl="http://build.fhir.org/ig/HL7/phd" defaultVersion="1.1.0" defaultWorkgroup="dev" gitUrl="https://github.com/HL7/PHD" url="http://hl7.org/fhir/uv/phd">
2+
<specification xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ballotUrl="http://hl7.org/fhir/uv/phd/2025Sep" ciUrl="http://build.fhir.org/ig/HL7/phd" defaultVersion="1.1.0" defaultWorkgroup="dev" gitUrl="https://github.com/HL7/PHD" url="http://hl7.org/fhir/uv/phd">
33
<version code="current" url="http://build.fhir.org/ig/HL7/phd"/>
4-
<version code="2.1.0" url="http://hl7.org/fhir/uv/phd/2.1.0"/>
4+
<version code="2.0.0-ballot2" url="http://hl7.org/fhir/uv/phd/2025Sep"/>
55
<version code="1.1.0" url="http://hl7.org/fhir/uv/phd/STU1.1"/>
66
<version code="2.0.0-ballot" deprecated="true" url="http://hl7.org/fhir/uv/phd/2024Sep"/>
77
<version code="1.0.0" deprecated="true" url="http://hl7.org/fhir/uv/phd/STU1"/>

input-cache/schemas/R5/fhir-single.xsd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
POSSIBILITY OF SUCH DAMAGE.
4848

4949

50-
Generated on Sat, Jul 26, 2025 01:41+0000 for FHIR v6.0.0-ballot2
50+
Generated on Tue, Jul 29, 2025 04:15+0000 for FHIR v6.0.0-ballot2
5151
-->
5252
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://hl7.org/fhir" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://hl7.org/fhir" elementFormDefault="qualified" version="6.0.0-ballot2">
5353
<!-- Note: When using this schema with some tools, it may also be necessary to declare xmlns:xml="http://www.w3.org/XML/1998/namespace", however this causes performance issues with other tools and thus is not in the base schemas. -->
@@ -59787,7 +59787,7 @@ Deceased patients may also be marked as inactive for the same reasons, but may b
5978759787
<xs:sequence>
5978859788
<xs:element name="identifier" minOccurs="0" maxOccurs="unbounded" type="Identifier">
5978959789
<xs:annotation>
59790-
<xs:documentation xml:lang="en">Id for specimen.</xs:documentation>
59790+
<xs:documentation xml:lang="en">Identifiers used for specimen identification. These could include but are not limited to identifiers generated upon collection, accessioning, or other reasons for labeling a specimen.</xs:documentation>
5979159791
</xs:annotation>
5979259792
</xs:element>
5979359793
<xs:element name="accessionIdentifier" minOccurs="0" maxOccurs="1" type="Identifier">

input/PhdImplementationGuide.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ In this example there are only xml structure definitions, value sets, code syste
4343
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir/src-generated/schemas/fhir-single.xsd">
4444
<id value="hl7.fhir.uv.phd"/>
4545
<url value="http://hl7.org/fhir/uv/phd/ImplementationGuide/hl7.fhir.uv.phd"/>
46-
<version value="2.1.0"/>
46+
<version value="2.0.0-ballot2"/>
4747
<name value="PhdImplementationGuide"/>
4848
<title value="Personal Health Device Implementation Guide"/>
4949
<status value="active"/>
@@ -244,7 +244,7 @@ In this example there are only xml structure definitions, value sets, code syste
244244
<reference>
245245
<reference value="ValueSet/ASN1MeasurementBits"/>
246246
</reference>
247-
<description value="Value set for those Asn1ToHL7 codes whose source is a measurement attribute; one of the Enum-observed-value attributes."/>
247+
<description value="Value set for those Asn1ToHL7 codes whose source is a measurement attribute."/>
248248
<exampleBoolean value="false"/>
249249
</resource>
250250
<!-- these value sets were missing -->
@@ -450,7 +450,7 @@ In this example there are only xml structure definitions, value sets, code syste
450450
<reference value="Device/phd-711000FEFF5F49B0.B0495F001071"/>
451451
</reference>
452452
<name value="Example of a Blood Pressure PHD"/>
453-
<description value="This example maps the MDS data from a Blood Pressure PHD. This device did not report Reg-Cert-Data-List information." />
453+
<description value="This example maps the System Information data from a Blood Pressure PHD. This device did not report Reg-Cert-Data-List information." />
454454
<exampleCanonical value="http://hl7.org/fhir/uv/phd/StructureDefinition/PhdDevice"/>
455455
</resource>
456456
<resource>
@@ -626,6 +626,11 @@ In this example there are only xml structure definitions, value sets, code syste
626626
<parameter>
627627
<code value="special-url"/>
628628
<value value="http://terminology.hl7.org/CodeSystem/ASN1ToHL7"/>
629+
</parameter>
630+
<parameter>
631+
<code value="special-url"/>
632+
<value value="http://terminology.hl7.org/ValueSet/ASN1ClockBits"/>
629633
</parameter>
630634
</definition>
635+
631636
</ImplementationGuide>

input/fsh/StructureDefinition.PhdBaseObservation.fsh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ Description: "Common base profile with the elements that are common to the PHD I
5252
* ^slicing.rules = #open
5353
* identifier contains conditionalCreate 0..1
5454
* identifier[conditionalCreate] ^short = "Unique identifier of this measurement for a given patient and device"
55-
* ^definition = "An identifier created from a combination of the measurement parameters like sensor timestamp, type code, unit code, patient and device identifiers, and selected elements of any component elements."
56-
* ^comment = "This value is used in the conditional create to prevent data duplication. PHDs will often re-send already sent data for a variety of reasons. This element is required unless the metric measurement contains no timestamp or is a measurement containing a timestamp that is real time. By real time the timestamp reported by the PHD must be later than the current time reported by the PHD before any measurements are received. There might be other means to ascertain whether the data is real time. Temporarily stored data from IEEE 11073-10206 compliant devices, which are required to be deleted the data after sending, can be considered real time. An example of this are temporarily stored observations from a device implementing the Bluetooth SIG GHS profile or implementing another Bluetooth SIG medical sensor device profile."
55+
* ^definition = "An identifier created from a combination of the measurement parameters like sensor timestamp, type code, unit code, patient and device identifier."
56+
* ^comment = "This value is used in the conditional create to prevent data duplication. PHDs will often re-send already sent data for a variety of reasons. This element is recommended unless the observation contains no timestamp or is a measurement containing a timestamp that is real time. By real time the timestamp reported by the PHD must be later than the current time reported by the PHD before any measurements are received. There might be other means to ascertain whether the data is real time. Temporarily stored data from IEEE 11073-10206 compliant devices, which are required to be deleted the data after sending, can be considered real time. An example of this are temporarily stored observations from a device implementing the Bluetooth SIG GHS profile or implementing another Bluetooth SIG medical sensor device profile."
5757
* ^requirements = "Allows observations to be distinguished in a selective enough manner to prevent resource duplication."
5858
* type ..0
5959
* system = "http://hl7.org/fhir/uv/phd/StructureDefinition/PhdBaseObservation" (exactly)
@@ -68,7 +68,7 @@ Description: "Common base profile with the elements that are common to the PHD I
6868
* ^short = "Reference to the patient or the PhdDevice that is the subject of the observation"
6969
* effective[x] 1..
7070
* effective[x] only dateTime or Period
71-
* ^definition = "The time or time-period the observed value is asserted as being true. It is a time period if a Measure-Active-Period (duration) attribute is part of the metric measurement sent by the PHD. Otherwise it is the timestamp sent by the PHD or the time of reception by the PHG if the PHD sent no timestamp."
71+
* ^definition = "The time or time-period the observed value is asserted as being true. This can be a dateTime or a period. The value is based on the timestamp sent by the PHD or the time of reception by the PHG if the PHD sent no timestamp."
7272
* interpretation
7373
* coding ^slicing.discriminator[0].type = #value
7474
* ^slicing.discriminator[=].path = "system"
@@ -90,7 +90,7 @@ Description: "Common base profile with the elements that are common to the PHD I
9090
* ^slicing.rules = #open
9191
* component contains supplementalTypesComponent 0..*
9292
* component[supplementalTypesComponent] ^short = "Supplemental Type: A further description of the measurement type."
93-
* ^definition = "For each code contained in the Supplemental-Types attribute, a separate supplementalTypesComponent element is generated. The component is not generated if the attribute is absent or empty. The component shall be generated otherwise."
93+
* ^definition = "For each code contained in the Supplemental-Types attribute, a separate component is generated. The component is not generated if the attribute is absent or empty. The component shall be generated otherwise."
9494
* ^comment = "A PHD may send a Supplemental-Types attribute as part of the measurement. This attribute consists of a set of MDC nomenclature codes. Each code describes an aspect of the measurement, such as MDC_MODALITY_SPOT in the pulse oximeter which indicates that the provided measurement is a stable average."
9595
// * code from $CodeableConcept11073MDC (required)
9696
* code = Mdc#68193 // from $CodeableConcept11073MDC (required)

input/fsh/StructureDefinition.PhdCompoundNumericObservation.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Description: "Observations coming from a PHD where the measurement is a set of n
1818
compound 0..*
1919
* component[compound] ^short = "Compound numeric measurement entry components"
2020
* ^definition = "Each compoundComponent contains one of the N constituents of the compound measurement. These entries are NOT present if a Measurement-Status attribute indicates an error."
21-
* ^comment = "A compound measurement is a measurement that requires more than one value to represent it, such as an acceleration which has an x, y, and z components. The Blood pressure is also represented as a compound measurement, containing systolic, diastolic and MAP components. One combines all the compound elements together to describe the measurement. The Metric-Id-List entry n and Compound-Basic/Simple-Nu-Observed-Value entry n are ordered such that the code that describes each entry n is computed from the partition of the Type attribute and the term code of the Metric-Id-List attribute. In the case of the Compound-Nu-Observed-Value, the term code comes from the Compound-Nu-Observed-Value.metric sub-component."
21+
* ^comment = "A compound measurement is a measurement that requires more than one value to represent it, such as an acceleration which has an x, y, and z components. The Blood pressure is also represented as a compound measurement, containing systolic, diastolic and MAP components. One combines all the compound elements together to describe the measurement."
2222
* code from $MDCnotObject (required)
2323
* coding 1..
2424
* ^slicing.discriminator[0].type = #value

input/fsh/StructureDefinition.PhdCompoundObservation.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Description: "Observations from a PHD where the measurement is a set of numbers
1717
measurement 0..*
1818
* component[measurement] ^short = "Compound measurement entry component"
1919
* ^definition = "Each compoundComponent contains one of the N constituents of the compound measurement. These entries are NOT present if a Measurement-Status attribute indicates an error."
20-
* ^comment = "A compound measurement is a measurement that requires more than one value to represent it, such as an acceleration which has an x, y, and z components. The Blood pressure is also represented as a compound measurement, containing systolic, diastolic and MAP components. One combines all the compound elements together to describe the measurement. The Metric-Id-List entry n and Compound-Basic/Simple-Nu-Observed-Value entry n are ordered such that the code that describes each entry n is computed from the partition of the Type attribute and the term code of the Metric-Id-List attribute. In the case of the Compound-Nu-Observed-Value, the term code comes from the Compound-Nu-Observed-Value.metric sub-component."
20+
* ^comment = "A compound measurement is a measurement that requires more than one value to represent it, such as an acceleration which has an x, y, and z components. The Blood pressure is also represented as a compound measurement, containing systolic, diastolic and MAP components. One combines all the compound elements together to describe the measurement."
2121
* code from http://hl7.org/fhir/uv/phd/ValueSet/MDCValueSet (required)
2222
* value[x] only Quantity or CodeableConcept or string or SampledData
2323
* valueQuantity

input/fsh/StructureDefinition.PhgDevice.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ Description: "Profile for the Device Resource for a PHG"
134134
* valueCode from http://hl7.org/fhir/uv/phd/ValueSet/ContinuaPHGInterfaces (extensible)
135135

136136
* property[clockBitProperty] ^short = "Boolean Properties reported by the Clock"
137-
* ^definition = "For each Boolean clock capability reported a property element is used."
137+
* ^definition = "For each Boolean clock capability reported a `property` element is used."
138138
* type from ASN1ClockBits (required)
139139
* ^short = "Tells what the clock capability item is"
140140
* ^definition = "One of the capabilities of the clock as reportedD."

input/fsh/ValueSet.ASN1ClockBits.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ Id: ASN1ClockBits
33
Title: "ANS1ToHL7 codes defined for Boolean Clock attributes"
44
Description: "ValueSet for the ANS1ToHL7 codes that are not derived from enumeration measurements."
55
* ^meta.profile = "http://hl7.org/fhir/StructureDefinition/shareablevalueset"
6-
* ^url = "http://hl7.org/fhir/uv/phd/ValueSet/ASN1ClockBits"
6+
* ^url = "http://terminology.hl7.org/ValueSet/ASN1ClockBits"
77
* ^version = "current"
88
// * ^status = #draft
99
* ^experimental = false

input/ignoreWarnings.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ This element does not match any known slice defined in the profile http://hl7.or
1818
This element does not match any known slice defined in the profile http://hl7.org/fhir/StructureDefinition/bodytemp|4.0.1 (this may not be a problem, but you should check that it's not intended to match a slice)
1919

2020
# When a Phd compound observation is also a vital sign this warning is generated, but this is not a real problem.
21-
This element does not match any known slice Defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdCompoundNumericObservation|2.1.0 (this may not be a problem, but you should check that it's not intended to match a slice)
22-
This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdCompoundObservation|2.1.0 (this may not be a problem, but you should check that it's not intended to match a slice)
21+
This element does not match any known slice Defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdCompoundNumericObservation|2.0.0-ballot2 (this may not be a problem, but you should check that it's not intended to match a slice)
22+
This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdCompoundObservation|2.0.0-ballot2 (this may not be a problem, but you should check that it's not intended to match a slice)
2323

2424
# This warning is generated when different categories are required in resources that comply with different profiles like vitals-signs and phd:
2525
None of the codings provided are in the value set 'Observation Category Codes' (http://hl7.org/fhir/ValueSet/observation-category|4.0.1), and a coding is recommended to come from this value set (codes = http://hl7.org/fhir/uv/phd/CodeSystem/PhdObservationCategories#phd)
@@ -28,7 +28,7 @@ None of the codings provided are in the value set 'Observation Category Codes' (
2828
The type of property 'code' is 'code', but no ValueSet information was found, so the codes will be validated as internal codes
2929

3030
# This is generated for all observations that use the vital signs category. This warning can be ignored safely.
31-
This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation|2.1.0 (this may not be a problem, but you should check that it's not intended to match a slice)
31+
This element does not match any known slice defined in the profile http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation|2.0.0-ballot2 (this may not be a problem, but you should check that it's not intended to match a slice)
3232

3333
# This informational message is out of our control.
3434
The extension http://hl7.org/fhir/StructureDefinition/elementdefinition-maxValueSet|5.2.0 is deprecated

input/intro-notes/StructureDefinition-PhdBaseObservation-notes.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ An example of the this identifier from [this example](Observation-numeric-spotnu
2929
{% fragment Observation/numeric-spotnumeric JSON EXCEPT:identifier %}
3030

3131
### Obtaining the Type of observation
32-
One obtains the IEEE 11073-10101 observation type for the `code` element in the same manner for all metric observations. See the section [MDC Nomenclature codes](Nomenclaturecodes.html) for the details.
32+
One obtains the IEEE 11073-10101 observation type for the `code` element in the same manner for all types of observations. See the section [MDC Nomenclature codes](Nomenclaturecodes.html) for the details.
3333

3434
### Subject
3535
The `subject` element normally points to the PhdPatient resource using the logical id of the Patient resource, for example 'Patient/123546'. For device settings known to the PHG it should point to the PHD.
@@ -76,7 +76,7 @@ For IEEE 11073-10206 timestamps the following table can be used:
7676
| Tick counter | Yes | n.a. | n.a. | Map to PHG timeline, including PHG offset | Yes |
7777
| Tick counter | No | n.a. | n.a. | Throw away | n.a. |
7878

79-
The PHG maps the 'converted' timestamp to either an `Observation.effectiveDateTime` element or an `Observation.effectivePeriod` element. The second situation occurs when the metric observation includes a Measurement-Duration (duration) attribute. Then the timestamp attribute gives the start of the period and the end of the period is obtained by adding the Measurement-Duration value to it. If no timestamp is provided, the PHG, using the time of reception of the observation as its timestamp must then do the reverse; the time of reception is the end time and the start time is given by subtracting the Measurement-Duration value from it.
79+
The PHG maps the 'converted' timestamp to either an `Observation.effectiveDateTime` element or an `Observation.effectivePeriod` element. The second situation occurs when the observation includes a Measurement-Duration (duration) attribute. Then the timestamp attribute gives the start of the period and the end of the period is obtained by adding the Measurement-Duration value to it. If no timestamp is provided, the PHG, using the time of reception of the observation as its timestamp must then do the reverse; the time of reception is the end time and the start time is given by subtracting the Measurement-Duration value from it.
8080
When the PHG modifies an Observation's timestamp as received from the PHD it shall also generate a Coincident Timestamp observation that records how the `Observation.effective[x]` element is generated.
8181

8282
### extension: Coincident timestamp reference

0 commit comments

Comments
 (0)