Skip to content

Commit 6967ac1

Browse files
authored
Merge pull request #70 from HL7/ACOM-GHS-support
editorial improvements
2 parents 60c55ce + 6e19b2b commit 6967ac1

18 files changed

Lines changed: 78 additions & 78 deletions

input/intro-notes/CodeSystem-ASN1ToHL7-intro.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ The bit may either represent an event or a state. When an event, the defined eve
44

55
The code values for the properties are included here as well, since the valueset extension for properties is not supported for FHIR R4.
66

7-
The uploader can generate the code from the data received from the PHD. No external information is necessary unless the uploader wants to populate the `display` element of the CodeableConcept data type. It is recommended that the uploader populates the display element as defined by the CodeSystem if known, or otherwise populates the `text` element with the Reference Id or the MDC code as decimal string followed by "bit *n*". It is not required because it is desired to have an uploader that can still work with future specializations and in that case, it is not possible for the uploader to know what to use as `display` as it is not sent over the wire; it is only available from the specialization documents.
7+
The uploader can generate the code from the data received from the PHD. No external information is necessary unless the uploader wants to populate the `display` element of the CodeableConcept data type. It is recommended that the uploader populates the `display` element as defined by the CodeSystem if known, or otherwise populates the `text` element with the Reference Id or the MDC code as decimal string followed by "bit *n*". It is not required because it is desired to have an uploader that can still work with future specializations and in that case, it is not possible for the uploader to know what to use as `display` as it is not sent over the wire; it is only available from the specialization documents.
88

99
To generate the code, the uploader obtains the code for the type of measurement which is used to populate the `Observation.code.coding.code` –element. Then for each bit to be reported, a new code is generated by appending a period followed by the bit position being mapped.
1010

1111
A bit can only have two values, set or cleared. Thus the value is reported in the `Observation.component.valueBoolean` –element using `true` for set and `false` for cleared.
1212

13-
- As an example, the continuous glucose monitor specialization has a Device status measurement whose type is given by the code 8418060. If the value reported is 0001 1000 0000 0000 the bits set are bits 3 and 4. Note that bit 0 is the HIGH order bit. Bit 3 means 'sensor malfunction' and bit 4 means 'device specific alert'. This measurement would require two component elements and one would be 8418060.3 and the other would be 8418060.4. Note these are alpha-numeric strings and not decimal numbers. If one took the code 8418060.3 and looked it up in the ASN.1 Bits vocabulary one would find it meant 'sensor malfunctioned'.
13+
- As an example, the continuous glucose monitor specialization has a Device status measurement whose type is given by the code 8418060. If the value reported is 0001 1000 0000 0000 the bits set are bits 3 and 4. Note that bit 0 is the HIGH order bit. Bit 3 means 'sensor malfunction' and bit 4 means 'device specific alert'. This measurement would require two `component` elements and one with code 8418060.3 and the other with code 8418060.4. Note these are alpha-numeric strings and not decimal numbers. If one took the code 8418060.3 and looked it up in the ASN.1 Bits vocabulary one would find it meant 'sensor malfunctioned'.
1414

1515
## Reporting Requirements
1616
If the ASN.1 bit represents an event, only the set condition needs to be reported. If the ASN.1 bit represents a state, both the set and cleared conditions need to be reported. If the device does not support the bit, it is not required to report the value. If the uploader would, nevertheless, desire to report the unsupported situation it is done in an `Observation.component.dataAbsentReason.coding.code` –element with code "unsupported". The `Observation.component.value[x]` element is absent. Undefined bits are never reported.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
This example shows a standard coincident timestamp where the PHG has superior time synchronization to the PHD. There is no identifier element in this Observation as Coincident Timestamps are never duplicates and are always 'created'.
1+
This example shows a standard coincident timestamp where the PHG has superior time synchronization to the PHD. There is no `identifier` element in this Observation as Coincident Timestamps are never duplicates and are always 'created'.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
This example shows a compound (numeric) observation. The most common type of compound observation is the Blood Pressure. The systolic, diastolic, and mean values are treated as parts of the same observation. The compound elements are reported in `Observation.component` elements and that there is **no** `value[x]` in the 'primary' observation. In addition, the 'mean' component is not considered as one of FHIR's vital signs and no LOINC code is present for that component code.
1+
This example shows a compound (numeric) observation. The prototypical compound observation is the Blood Pressure. The systolic, diastolic, and mean values are treated as parts of the same observation. The compound elements are reported in `Observation.component` elements and that there is **no** `value[x]` in the 'primary' observation. In addition, the 'mean' component is not considered as one of FHIR's vital signs and no LOINC code is present for that component code.
22

33
Note that the referenced resources - Patient, PHG, PHD, and coincident timestamp - are assumed to be present on the server already.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
This is an example of a device reporting a NaN (not a number). The important aspect of this case is that the value element is absent and replaced by a dataAbsentReason element.
1+
This is an example of a device reporting a NaN (not a number). The important aspect of this case is that the `value[x]` element is absent and replaced by a `dataAbsentReason` element.
22

3-
There is no logical id in this resource as this resource is being uploaded to the server in a create operation. The server will create the logical id and return it to the sender in the response. There is also no reference to the coincident timestamp since this observation is generated by a device that is streaming data and reporting no timestamp. The timestamp is taken to be the time of reception by the gateway.
3+
There is no logical id in this resource as this resource is being uploaded to the server in a create operation. The server will create the logical id and return it to the sender in the response. There is also no reference to the coincident timestamp since this observation is generated by a device that is streaming data as it is generated and without a timestamp. The timestamp is taken to be the time of reception by the gateway.
44

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
This example shows a basic numeric observation. It does have a single component element as the measurement also contained a Supplemental Information attribute indicating the measurement is a SPOT (stable average).
1+
This example shows a basic numeric observation. It does have an additional component as the measurement also contained a Supplemental Information attribute indicating the measurement is a SPOT (stable average).
22

3-
Note there is no logical id in this resource as this resource is being uploaded to the server in a conditional create operation. The server will use the identifier to check that no other Observation resource exists on the server with the same identifier. If there is not such resource present, the server will create the logical id and return it to the sender in the response. Pulse oximeters reporting a SPOT measurement have a timestamp thus there is a reference to the coincident timestamp.
3+
Note there is no logical id in this resource as this resource is being uploaded to the server in a conditional create operation. The server will use the conditional create identifier to check that no other Observation resource exists on the server with the same identifier. If there is not such resource present, the server will create the logical id and return it to the sender in the response. Pulse oximeters reporting a SPOT measurement have a timestamp thus there is a reference to the coincident timestamp.
44

55
The referenced resources are assumed to have been uploaded to the server before - Patient, PHD, PHG and coincident timestamp.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
The following section gives more details on the mapping of BITS to a FHIR Observation resource.
22

33
### Mapping BITs Enumerations to FHIR
4-
FHIR has no data type that corresponds to this kind of measurement. Consequently we developed a code system which maps the BITs measurement to a set of codes. The details of the mapping and how these codes are generated from data received from the PHD are given in [ASN1 To HL7 CodeSystem](CodeSystem-ASN1ToHL7.html). Basically each component has a code consisting of the MDC code followed by the bit number. In FHIR there is one component per reported bit setting. And similar to the compound measurement, there is no Observation.value[x] element. Each component has a value of `true` or `false`, corresponding to the bit being set or cleared.
4+
FHIR has no data type that corresponds to this kind of measurement. Consequently we developed a code system which maps the BITs measurement to a set of codes. The details of the mapping and how these codes are generated from data received from the PHD are given in [ASN1 To HL7 CodeSystem](CodeSystem-ASN1ToHL7.html). Basically each `component` has a code consisting of the MDC code followed by the bit number. In FHIR there is one `component` per reported bit setting. And similar to the compound measurement, there is no `Observation.value[x]` element. Each `component` has a value of `true` or `false`, corresponding to the bit being set or cleared.
55

6-
There may be an `Observation.dataAbsentReason` element if a measurement status indicates a measurement failure in which case no component elements representing the BITs setting are reported.
6+
There may be an `Observation.dataAbsentReason` element if a measurement status indicates a measurement failure in which case no `component` elements representing the BITs setting are reported.
77

88
When mapping Bluetooth GHS bitstring Observation values only supported bits are reported. For bits of type 'event' only set bits need to be reported. If of type 'state' both set and cleared states need to be reported. This means that some bits can be skipped and that the number FHIR Observation can be smaller than the number of bits in the GHS bitstring.
99

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11

22
The PHD Base Observation profile contains the elements that are common to all PHD Observation profiles describing measurements. These element are:
3-
- code: what the measurement is
4-
- subject: the patient this measurement refers to
5-
- effective[x]: the timestamp and perhaps duration of the measurement
6-
- device: reference to the PHD taking the measurement
7-
- derivedFrom / memberOf: references to related observations
8-
- components: contains any additional measurement descriptions (Supplemental Information)
9-
- category: a fixed value identifying observations generated by PHDs
10-
- measurement status
11-
- gatewayDevice extension: reference to the PHG responsible for generating the upload
12-
- coincidentTimestamp extension: reference to the coincidentTimestamp observation that relates PHD time and PHG time
13-
- performer: optional, when the patient is known to be the performer this may refer to the patient
14-
- identifier: the PHD conditional-create identifier for this measurement to avoid duplicate uploads
3+
- `code`: what the measurement is
4+
- `subject`: the patient this measurement refers to
5+
- `effective[x]`: the timestamp and perhaps duration of the measurement
6+
- `device`: reference to the PHD taking the measurement
7+
- `derivedFrom / memberOf`: references to related observations
8+
- `components`: contains any additional measurement descriptions (Supplemental Information)
9+
- `category`: a fixed value identifying observations generated by PHDs
10+
- `measurementStatus`: the status of the measurement
11+
- `gatewayDevice` extension: reference to the PHG responsible for generating the upload
12+
- `coincidentTimestamp` extension: reference to the coincidentTimestamp observation that relates PHD time and PHG time
13+
- `performer`: optional, when the patient is known to be the performer this may refer to the patient
14+
- `identifier`: the PHD conditional-create identifier for this measurement to avoid duplicate uploads
1515

0 commit comments

Comments
 (0)