From 404cce054082b1ad97dce060c3d75fd4c2b6103b Mon Sep 17 00:00:00 2001 From: Pieter Edelman Date: Fri, 12 Apr 2024 21:45:34 +0200 Subject: [PATCH 1/6] Proposal to split up the zib HeartRate profile into multiple Observations --- examples/nl-core-HeartRate-01.xml | 42 ++---- ...-core-HeartRate.HeartbeatRegularity-01.xml | 28 ++++ ...e-HeartRate.InterpretationHeartRate-01.xml | 28 ++++ .../nl-core-HeartRate.HeartbeatRegularity.xml | 37 ++++++ ...core-HeartRate.InterpretationHeartRate.xml | 37 ++++++ resources/nl-core/nl-core-HeartRate.xml | 13 +- .../zib/zib-HeartRate.HeartbeatRegularity.xml | 120 ++++++++++++++++++ .../zib-HeartRate.InterpretationHeartRate.xml | 119 +++++++++++++++++ resources/zib/zib-HeartRate.xml | 81 ++---------- 9 files changed, 400 insertions(+), 105 deletions(-) create mode 100644 examples/nl-core-HeartRate.HeartbeatRegularity-01.xml create mode 100644 examples/nl-core-HeartRate.InterpretationHeartRate-01.xml create mode 100644 resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml create mode 100644 resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml create mode 100644 resources/zib/zib-HeartRate.HeartbeatRegularity.xml create mode 100644 resources/zib/zib-HeartRate.InterpretationHeartRate.xml diff --git a/examples/nl-core-HeartRate-01.xml b/examples/nl-core-HeartRate-01.xml index 874fa66c1..c9cf11979 100644 --- a/examples/nl-core-HeartRate-01.xml +++ b/examples/nl-core-HeartRate-01.xml @@ -41,36 +41,14 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml b/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml new file mode 100644 index 000000000..03bf94575 --- /dev/null +++ b/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml b/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml new file mode 100644 index 000000000..e9cebc806 --- /dev/null +++ b/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml new file mode 100644 index 000000000..246694e72 --- /dev/null +++ b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml @@ -0,0 +1,37 @@ + + + + + +
No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.
+
+ + + + <status value="draft" /> + <publisher value="Nictiz" /> + <contact> + <name value="Nictiz" /> + <telecom> + <system value="url" /> + <value value="https://www.nictiz.nl" /> + <use value="work" /> + </telecom> + </contact> + <description value="Regularity of the heartbeat." /> + <purpose value="A derived profile from [zib-HeartRate.HeartbeartRegularity](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeartRegularity) to provide a version better suited for implementation purposes. This profile augments the base profile with elements found in the various use cases that have adopted the zib." /> + <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Observation" /> + <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity" /> + <derivation value="constraint" /> + <differential> + <element id="Observation"> + <path value="Observation" /> + <comment value="This profile on the Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <alias value="nl-core-HeartRate.HeartbeatRegularity" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml new file mode 100644 index 000000000..79b7c54fa --- /dev/null +++ b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="nl-core-HeartRate.InterpretationHeartRate" /> + <text> + <status value="empty" /> + <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div> + </text> + <url value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate" /> + <name value="NlcoreHeartRateInterpretationHeartRate" /> + <title value="nl core HeartRate.InterpretationHeartRate" /> + <status value="draft" /> + <publisher value="Nictiz" /> + <contact> + <name value="Nictiz" /> + <telecom> + <system value="url" /> + <value value="https://www.nictiz.nl" /> + <use value="work" /> + </telecom> + </contact> + <description value="Regularity of the heartbeat." /> + <purpose value="A derived profile from [zib-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate) to provide a version better suited for implementation purposes. This profile augments the base profile with elements found in the various use cases that have adopted the zib." /> + <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> + <fhirVersion value="4.0.1" /> + <kind value="resource" /> + <abstract value="false" /> + <type value="Observation" /> + <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate" /> + <derivation value="constraint" /> + <differential> + <element id="Observation"> + <path value="Observation" /> + <comment value="This profile on the Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <alias value="nl-core-HeartRate.InterpretationHeartRate" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/resources/nl-core/nl-core-HeartRate.xml b/resources/nl-core/nl-core-HeartRate.xml index cabca45f2..7834f19b9 100644 --- a/resources/nl-core/nl-core-HeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.xml @@ -2,7 +2,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="nl-core-HeartRate" /> <text> - <status value="empty"/> + <status value="empty" /> <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div> </text> <url value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate" /> @@ -45,5 +45,16 @@ <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient" /> </type> </element> + <element id="Observation.hasMember"> + <path value="Observation.hasMember" /> + <type> + <code value="Reference" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/MolecularSequence" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate" /> + </type> + </element> </differential> </StructureDefinition> \ No newline at end of file diff --git a/resources/zib/zib-HeartRate.HeartbeatRegularity.xml b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml new file mode 100644 index 000000000..7cdb76f81 --- /dev/null +++ b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="zib-HeartRate.HeartbeatRegularity" /> + <text> + <status value="empty" /> + <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div> + </text> + <url value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity" /> + <name value="ZibHeartRateHeartbeatRegularity" /> + <title value="zib HeartRate.HeartbeatRegularity" /> + <status value="draft" /> + <publisher value="Nictiz" /> + <contact> + <name value="Nictiz" /> + <telecom> + <system value="url" /> + <value value="https://www.nictiz.nl" /> + <use value="work" /> + </telecom> + </contact> + <description value="Regularity of the heartbeat." /> + <purpose value="This Observation resource represents the HeartbeatRegularity concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> + <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> + <fhirVersion value="4.0.1" /> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <uri value="https://zibs.nl/wiki/HeartRate-v3.4(2020EN)" /> + <name value="zib HeartRate-v3.4(2020EN)" /> + </mapping> + <kind value="resource" /> + <abstract value="true" /> + <type value="Observation" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" /> + <derivation value="constraint" /> + <differential> + <element id="Observation"> + <path value="Observation" /> + <comment value="This profile on the Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + </element> + <element id="Observation.code"> + <path value="Observation.code" /> + <patternCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="301112006" /> + </coding> + </patternCodeableConcept> + </element> + <element id="Observation.effective[x]"> + <path value="Observation.effective[x]" /> + <slicing> + <discriminator> + <type value="type" /> + <path value="$this" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.effective[x]:effectiveDateTime"> + <path value="Observation.effective[x]" /> + <sliceName value="effectiveDateTime" /> + <short value="HeartRateDateTime" /> + <definition value="Date and time of the heart rate measurement." /> + <alias value="HartfrequentieDatumTijd" /> + <type> + <code value="dateTime" /> + </type> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.4" /> + <comment value="HeartRateDateTime" /> + </mapping> + </element> + <element id="Observation.value[x]"> + <path value="Observation.value[x]" /> + <slicing> + <discriminator> + <type value="type" /> + <path value="$this" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.value[x]:valueCodeableConcept"> + <path value="Observation.value[x]" /> + <sliceName value="valueCodeableConcept" /> + <short value="HeartbeatRegularity" /> + <definition value="Regularity of the heartbeat." /> + <alias value="HartslagRegelmatigheid" /> + <type> + <code value="CodeableConcept" /> + </type> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.1--20200901000000" /> + </binding> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.5" /> + <comment value="HeartbeatRegularity" /> + </mapping> + </element> + <element id="Observation.method"> + <path value="Observation.method" /> + <short value="HeartRateMeasurementMethod" /> + <definition value="The method used to count and observe the heart rate." /> + <alias value="HartslagMeetMethode" /> + <binding> + <strength value="extensible" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.2--20200901000000" /> + </binding> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.6" /> + <comment value="HeartRateMeasurementMethod" /> + </mapping> + </element> + + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/resources/zib/zib-HeartRate.InterpretationHeartRate.xml b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml new file mode 100644 index 000000000..3d6b29c38 --- /dev/null +++ b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="zib-HeartRate.InterpretationHeartRate" /> + <text> + <status value="empty" /> + <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div> + </text> + <url value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate" /> + <name value="ZibHeartRateInterpretationHeartRate" /> + <title value="zib HeartRate.InterpretationHeartRate" /> + <status value="draft" /> + <publisher value="Nictiz" /> + <contact> + <name value="Nictiz" /> + <telecom> + <system value="url" /> + <value value="https://www.nictiz.nl" /> + <use value="work" /> + </telecom> + </contact> + <description value="Regularity of the heartbeat." /> + <purpose value="This Observation resource represents the InterpretationHeartRate concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> + <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> + <fhirVersion value="4.0.1" /> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <uri value="https://zibs.nl/wiki/HeartRate-v3.4(2020EN)" /> + <name value="zib HeartRate-v3.4(2020EN)" /> + </mapping> + <kind value="resource" /> + <abstract value="true" /> + <type value="Observation" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Observation" /> + <derivation value="constraint" /> + <differential> + <element id="Observation"> + <path value="Observation" /> + <comment value="This profile on the Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + </element> + <element id="Observation.code"> + <path value="Observation.code" /> + <patternCodeableConcept> + <coding> + <system value="http://snomed.info/sct" /> + <code value="301113001" /> + </coding> + </patternCodeableConcept> + </element> + <element id="Observation.effective[x]"> + <path value="Observation.effective[x]" /> + <slicing> + <discriminator> + <type value="type" /> + <path value="$this" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.effective[x]:effectiveDateTime"> + <path value="Observation.effective[x]" /> + <sliceName value="effectiveDateTime" /> + <short value="HeartRateDateTime" /> + <definition value="Date and time of the heart rate measurement." /> + <alias value="HartfrequentieDatumTijd" /> + <type> + <code value="dateTime" /> + </type> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.4" /> + <comment value="HeartRateDateTime" /> + </mapping> + </element> + <element id="Observation.value[x]"> + <path value="Observation.value[x]" /> + <slicing> + <discriminator> + <type value="type" /> + <path value="$this" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.value[x]:valueCodeableConcept"> + <path value="Observation.value[x]" /> + <sliceName value="valueCodeableConcept" /> + <short value="HeartbeatRegularity" /> + <definition value="Regularity of the heartbeat." /> + <alias value="HartslagRegelmatigheid" /> + <type> + <code value="CodeableConcept" /> + </type> + <binding> + <strength value="extensible" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.3--20200901000000" /> + </binding> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.5" /> + <comment value="InterpretationHeartRate" /> + </mapping> + </element> + <element id="Observation.method"> + <path value="Observation.method" /> + <short value="HeartRateMeasurementMethod" /> + <definition value="The method used to count and observe the heart rate." /> + <alias value="HartslagMeetMethode" /> + <binding> + <strength value="extensible" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.2--20200901000000" /> + </binding> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <map value="NL-CM:12.3.6" /> + <comment value="HeartRateMeasurementMethod" /> + </mapping> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/resources/zib/zib-HeartRate.xml b/resources/zib/zib-HeartRate.xml index eae5afeb5..fd45b5c5e 100644 --- a/resources/zib/zib-HeartRate.xml +++ b/resources/zib/zib-HeartRate.xml @@ -2,7 +2,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="zib-HeartRate" /> <text> - <status value="empty"/> + <status value="empty" /> <div xmlns="http://www.w3.org/1999/xhtml">No narrative is provided for definitional resources. A human-readable rendering can be found in the implementation guide(s) where this resource is used.</div> </text> <url value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate" /> @@ -126,79 +126,16 @@ <comment value="HeartRateMeasurementMethod" /> </mapping> </element> - <element id="Observation.component"> - <path value="Observation.component" /> - <slicing> - <discriminator> - <type value="value" /> - <path value="code" /> - </discriminator> - <rules value="open" /> - </slicing> - </element> - <element id="Observation.component:heartbeatRegularity"> - <path value="Observation.component" /> - <sliceName value="heartbeatRegularity" /> - <max value="1" /> - </element> - <element id="Observation.component:heartbeatRegularity.code"> - <path value="Observation.component.code" /> - <patternCodeableConcept> - <coding> - <system value="http://snomed.info/sct" /> - <code value="301112006" /> - </coding> - </patternCodeableConcept> - </element> - <element id="Observation.component:heartbeatRegularity.value[x]"> - <path value="Observation.component.value[x]" /> - <short value="HeartbeatRegularity" /> - <definition value="Regularity of the heartbeat." /> - <alias value="HartslagRegelmatigheid" /> - <type> - <code value="CodeableConcept" /> - </type> - <binding> - <strength value="required" /> - <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.1--20200901000000" /> - </binding> - <mapping> - <identity value="zib-heartrate-v3.4-2020EN" /> - <map value="NL-CM:12.3.5" /> - <comment value="HeartbeatRegularity" /> - </mapping> - </element> - <element id="Observation.component:interpretationHeartRate"> - <path value="Observation.component" /> - <sliceName value="interpretationHeartRate" /> - <max value="1" /> - </element> - <element id="Observation.component:interpretationHeartRate.code"> - <path value="Observation.component.code" /> - <patternCodeableConcept> - <coding> - <system value="http://snomed.info/sct" /> - <code value="301113001" /> - </coding> - </patternCodeableConcept> - </element> - <element id="Observation.component:interpretationHeartRate.value[x]"> - <path value="Observation.component.value[x]" /> - <short value="InterpretationHeartRate" /> - <definition value="Interpretation heart rate" /> - <alias value="InterpretatieFrequentie" /> + <element id="Observation.hasMember"> + <path value="Observation.hasMember" /> <type> - <code value="CodeableConcept" /> + <code value="Reference" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/MolecularSequence" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate" /> </type> - <binding> - <strength value="extensible" /> - <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.12.3.3--20200901000000" /> - </binding> - <mapping> - <identity value="zib-heartrate-v3.4-2020EN" /> - <map value="NL-CM:12.3.7" /> - <comment value="InterpretationHeartRate" /> - </mapping> </element> </differential> </StructureDefinition> \ No newline at end of file From 43605fe1baccd6c3061bd0f33aa02f1b463bcff9 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Thu, 18 Apr 2024 13:36:20 +0200 Subject: [PATCH 2/6] Improve comments --- resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml | 2 +- .../nl-core/nl-core-HeartRate.InterpretationHeartRate.xml | 2 +- resources/nl-core/nl-core-HeartRate.xml | 1 + resources/zib/zib-HeartRate.HeartbeatRegularity.xml | 5 ++--- resources/zib/zib-HeartRate.InterpretationHeartRate.xml | 4 ++-- resources/zib/zib-HeartRate.xml | 3 ++- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml index 246694e72..a3b891560 100644 --- a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml +++ b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml @@ -30,7 +30,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This profile on the Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> <alias value="nl-core-HeartRate.HeartbeatRegularity" /> </element> </differential> diff --git a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml index 79b7c54fa..dc17893b5 100644 --- a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml @@ -30,7 +30,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This profile on the Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> <alias value="nl-core-HeartRate.InterpretationHeartRate" /> </element> </differential> diff --git a/resources/nl-core/nl-core-HeartRate.xml b/resources/nl-core/nl-core-HeartRate.xml index 7834f19b9..bbc1d90d0 100644 --- a/resources/nl-core/nl-core-HeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.xml @@ -35,6 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> + <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concept(s) of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [nl-core-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [nl-core-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate)" /> <alias value="nl-core-HeartRate" /> </element> <element id="Observation.subject"> diff --git a/resources/zib/zib-HeartRate.HeartbeatRegularity.xml b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml index 7cdb76f81..8084d271f 100644 --- a/resources/zib/zib-HeartRate.HeartbeatRegularity.xml +++ b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml @@ -19,7 +19,7 @@ </telecom> </contact> <description value="Regularity of the heartbeat." /> - <purpose value="This Observation resource represents the HeartbeatRegularity concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> + <purpose value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> <fhirVersion value="4.0.1" /> <mapping> @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This profile on the Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> </element> <element id="Observation.code"> <path value="Observation.code" /> @@ -115,6 +115,5 @@ <comment value="HeartRateMeasurementMethod" /> </mapping> </element> - </differential> </StructureDefinition> \ No newline at end of file diff --git a/resources/zib/zib-HeartRate.InterpretationHeartRate.xml b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml index 3d6b29c38..f919645e0 100644 --- a/resources/zib/zib-HeartRate.InterpretationHeartRate.xml +++ b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml @@ -19,7 +19,7 @@ </telecom> </contact> <description value="Regularity of the heartbeat." /> - <purpose value="This Observation resource represents the InterpretationHeartRate concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> + <purpose value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) HeartRate v3.4 (2020EN)](https://zibs.nl/wiki/HeartRate-v3.4(2020EN))." /> <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> <fhirVersion value="4.0.1" /> <mapping> @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This profile on the Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> </element> <element id="Observation.code"> <path value="Observation.code" /> diff --git a/resources/zib/zib-HeartRate.xml b/resources/zib/zib-HeartRate.xml index fd45b5c5e..6277a7708 100644 --- a/resources/zib/zib-HeartRate.xml +++ b/resources/zib/zib-HeartRate.xml @@ -36,7 +36,7 @@ <element id="Observation"> <path value="Observation" /> <short value="HeartRate" /> - <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart." /> + <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concept(s) of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [zib-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [zib-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate)" /> <alias value="Hartfrequentie" /> <mapping> <identity value="zib-heartrate-v3.4-2020EN" /> @@ -128,6 +128,7 @@ </element> <element id="Observation.hasMember"> <path value="Observation.hasMember" /> + <comment value="Several concepts of zib HeartRate are represented using distinct Observation resources. See the comment on the profile root for guidance." /> <type> <code value="Reference" /> <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" /> From c21bab6f11476217a2ce03f362da060fee137dce Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Thu, 18 Apr 2024 13:48:58 +0200 Subject: [PATCH 3/6] Fix for missing heart rate measuring method --- examples/nl-core-HeartRate.HeartbeatRegularity-01.xml | 7 +++++++ examples/nl-core-HeartRate.InterpretationHeartRate-01.xml | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml b/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml index 03bf94575..78b3474cf 100644 --- a/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml +++ b/examples/nl-core-HeartRate.HeartbeatRegularity-01.xml @@ -25,4 +25,11 @@ <display value="Onregelmatige hartslag"/> </coding> </valueCodeableConcept> + <method> + <coding> + <system value="http://snomed.info/sct"/> + <code value="37931006"/> + <display value="Auscultatie"/> + </coding> + </method> </Observation> diff --git a/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml b/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml index e9cebc806..06d6cb80a 100644 --- a/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml +++ b/examples/nl-core-HeartRate.InterpretationHeartRate-01.xml @@ -25,4 +25,11 @@ <display value="Bradycardie"/> </coding> </valueCodeableConcept> + <method> + <coding> + <system value="http://snomed.info/sct"/> + <code value="37931006"/> + <display value="Auscultatie"/> + </coding> + </method> </Observation> From 38638baf623da4c208fbf81cab24709c654c79d7 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Thu, 18 Apr 2024 13:50:19 +0200 Subject: [PATCH 4/6] Include mapping definitions in nl-core profiles as well --- resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml | 5 +++++ .../nl-core/nl-core-HeartRate.InterpretationHeartRate.xml | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml index a3b891560..a502d3ae9 100644 --- a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml +++ b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml @@ -22,6 +22,11 @@ <purpose value="A derived profile from [zib-HeartRate.HeartbeartRegularity](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeartRegularity) to provide a version better suited for implementation purposes. This profile augments the base profile with elements found in the various use cases that have adopted the zib." /> <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> <fhirVersion value="4.0.1" /> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <uri value="https://zibs.nl/wiki/HeartRate-v3.4(2020EN)" /> + <name value="zib HeartRate-v3.4(2020EN)" /> + </mapping> <kind value="resource" /> <abstract value="false" /> <type value="Observation" /> diff --git a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml index dc17893b5..1e29d4abd 100644 --- a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml @@ -22,6 +22,11 @@ <purpose value="A derived profile from [zib-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate) to provide a version better suited for implementation purposes. This profile augments the base profile with elements found in the various use cases that have adopted the zib." /> <copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." /> <fhirVersion value="4.0.1" /> + <mapping> + <identity value="zib-heartrate-v3.4-2020EN" /> + <uri value="https://zibs.nl/wiki/HeartRate-v3.4(2020EN)" /> + <name value="zib HeartRate-v3.4(2020EN)" /> + </mapping> <kind value="resource" /> <abstract value="false" /> <type value="Observation" /> From f25764415a9a598000f31a94565e81051a0e69d8 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Fri, 19 Apr 2024 10:53:01 +0200 Subject: [PATCH 5/6] Slice and reword descriptions according to new insights on the way to split out member Observations. --- .../nl-core-HeartRate.HeartbeatRegularity.xml | 2 +- ...core-HeartRate.InterpretationHeartRate.xml | 2 +- resources/nl-core/nl-core-HeartRate.xml | 18 +++++++++++- .../zib/zib-HeartRate.HeartbeatRegularity.xml | 2 +- .../zib-HeartRate.InterpretationHeartRate.xml | 2 +- resources/zib/zib-HeartRate.xml | 28 +++++++++++++++---- 6 files changed, 44 insertions(+), 10 deletions(-) diff --git a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml index a502d3ae9..dc1c107be 100644 --- a/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml +++ b/resources/nl-core/nl-core-HeartRate.HeartbeatRegularity.xml @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which groups references to the current and other resources on `Observation.hasMember`." /> <alias value="nl-core-HeartRate.HeartbeatRegularity" /> </element> </differential> diff --git a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml index 1e29d4abd..9f405272f 100644 --- a/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.InterpretationHeartRate.xml @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [nl-core-HeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate) profile on the Observation resource, which groups references to the current and other resources on `Observation.hasMember`." /> <alias value="nl-core-HeartRate.InterpretationHeartRate" /> </element> </differential> diff --git a/resources/nl-core/nl-core-HeartRate.xml b/resources/nl-core/nl-core-HeartRate.xml index bbc1d90d0..96a3c9e6a 100644 --- a/resources/nl-core/nl-core-HeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.xml @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concept(s) of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [nl-core-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [nl-core-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate)" /> + <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concepts of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [nl-core-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [nl-core-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate)" /> <alias value="nl-core-HeartRate" /> </element> <element id="Observation.subject"> @@ -57,5 +57,21 @@ <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate" /> </type> </element> + <element id="Observation.hasMember:heartbeatRegularity"> + <path value="Observation.hasMember" /> + <sliceName value="heartbeatRegularity" /> + <type> + <code value="Reference" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity" /> + </type> + </element> + <element id="Observation.hasMember:interpretationHeartRate"> + <path value="Observation.hasMember" /> + <sliceName value="interpretationHeartRate" /> + <type> + <code value="Reference" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate" /> + </type> + </element> </differential> </StructureDefinition> \ No newline at end of file diff --git a/resources/zib/zib-HeartRate.HeartbeatRegularity.xml b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml index 8084d271f..14f85d0ea 100644 --- a/resources/zib/zib-HeartRate.HeartbeatRegularity.xml +++ b/resources/zib/zib-HeartRate.HeartbeatRegularity.xml @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which groups references to the current and other resources on `Observation.hasMember`." /> </element> <element id="Observation.code"> <path value="Observation.code" /> diff --git a/resources/zib/zib-HeartRate.InterpretationHeartRate.xml b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml index f919645e0..64299ec97 100644 --- a/resources/zib/zib-HeartRate.InterpretationHeartRate.xml +++ b/resources/zib/zib-HeartRate.InterpretationHeartRate.xml @@ -35,7 +35,7 @@ <differential> <element id="Observation"> <path value="Observation" /> - <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which can be referenced using `Observation.hasMember`." /> + <comment value="This Observation resource represents the InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate. It can be used together with the [zib-HeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate) profile on the Observation resource, which groups references to the current and other resources on `Observation.hasMember`." /> </element> <element id="Observation.code"> <path value="Observation.code" /> diff --git a/resources/zib/zib-HeartRate.xml b/resources/zib/zib-HeartRate.xml index 6277a7708..304c40d34 100644 --- a/resources/zib/zib-HeartRate.xml +++ b/resources/zib/zib-HeartRate.xml @@ -36,7 +36,7 @@ <element id="Observation"> <path value="Observation" /> <short value="HeartRate" /> - <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concept(s) of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [zib-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [zib-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate)" /> + <comment value="**HL7 Vital Signs compatibility** Although this profile represents a vital signs measurement, it is *not* directly based on the HL7 Vital Signs profile because of two issues in its current version that prevent it from being used for the exchange of zibs (see below). However, an effort has been made to make this profile functionally equivalent to (a profile derived from) the [HL7 Vital Signs HeartRate profile](http://hl7.org/fhir/StructureDefinition/heartrate). Instances for both profiles should be highly compatible. This means that it should be possible to mostly validate an instance for this profile against the HL7 Vital Signs counterpart, _except_ for references on `Observation.hasMember` and `Observation.derivedFrom`. The base HL7 Vital Signs profile restricts the targets of these element to itself, which is a requirement that can never be satisfied for instances of profiles that are not directly derived from it. Please note that this profile implements the zib and can therefore be more restricted than its HL7 counterpart. It should be regarded as a derived profile rather than a direct recreation of the HL7 version. **Differences with the HL7 Vital Signs counterpart** * The _required_ terminology binding on `Observation.component` to the [Vital Signs Units](http://hl7.org/fhir/ValueSet/ucum-vitals-common) dataset makes it impossible to use `.component` for representing anything else than a Quantity (like a CodeableConcept or a boolean). This binding has therefore been omitted in the current profile. * The `mustSupport` = _true_ flag found on numerous elements isn't further specified in the HL7 Vital Signs IG, as is required by FHIR. This flag has therefore been omitted from the current profile. * The target restriction on `Observation.hasMember` and `Observation.derivedFrom` to the HL7 Vital Signs profile cannot be fulfilled. This restriction has therefore been omitted from the current profile. It might happen that for some concepts, the zib uses a different (but compatible) way than what is recommended by the [HL7 Vital Signs IG](http://hl7.org/fhir/r4/observation-vitalsigns.html). This is described in the comments for these concepts. There are also some differences in the profiling approach between the current and the HL7 profile, like the use of patterns rather than slices with fixed systems and codes to enforce the inclusion of some coding (for reasons of consistency with other zib profiles, the former approach has been chosen here). Apart from what is mentioned above, constraints, invariants and terminology bindings have been copied from the HL7 Vital Signs profile, but some textual descriptions have been omitted. Note: No equivalent for the HL7 Vital Signs base profile has been created to implement the zib profiles. The profile for this zib has been directly modelled onto its HL7 Vital Signs counterpart. **Relationship with other profiles** Several concepts of zib HeartRate are represented using distinct Observation resources. These are grouped using the current resource and are referenced on `Observation.hasMember`: * HeartbeatRegularity (NL-CM:12.3.5): [zib-HeartRate.HeartbeatRegularity](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity) * InterpretationHeartRate (NL-CM:12.3.7): [zib-HeartRate.InterpretationHeartRate](http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate)" /> <alias value="Hartfrequentie" /> <mapping> <identity value="zib-heartrate-v3.4-2020EN" /> @@ -128,13 +128,31 @@ </element> <element id="Observation.hasMember"> <path value="Observation.hasMember" /> - <comment value="Several concepts of zib HeartRate are represented using distinct Observation resources. See the comment on the profile root for guidance." /> + <slicing> + <discriminator> + <type value="profile" /> + <path value="resolve()" /> + </discriminator> + <rules value="open" /> + </slicing> + </element> + <element id="Observation.hasMember:heartbeatRegularity"> + <path value="Observation.hasMember" /> + <sliceName value="heartbeatRegularity" /> + <definition value="The HeartbeatRegularity concept (NL-CM:12.3.5) of zib HeartRate, represented as a distinct Observation resource." /> + <max value="1" /> <type> <code value="Reference" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/MolecularSequence" /> <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.HeartbeatRegularity" /> + </type> + </element> + <element id="Observation.hasMember:interpretationHeartRate"> + <path value="Observation.hasMember" /> + <sliceName value="interpretationHeartRate" /> + <definition value="The InterpretationHeartRate concept (NL-CM:12.3.7) of zib HeartRate, represented as a distinct Observation resource." /> + <max value="1" /> + <type> + <code value="Reference" /> <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-HeartRate.InterpretationHeartRate" /> </type> </element> From 3d0b8b17c1ac145c4c012ae3d33f68d5569a2c19 Mon Sep 17 00:00:00 2001 From: Luud Slagter <l.slagter@furore.com> Date: Fri, 19 Apr 2024 11:20:15 +0200 Subject: [PATCH 6/6] Removed specific references on hasMember root in nl-core-HeartRate --- resources/nl-core/nl-core-HeartRate.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/resources/nl-core/nl-core-HeartRate.xml b/resources/nl-core/nl-core-HeartRate.xml index 96a3c9e6a..01bbb9006 100644 --- a/resources/nl-core/nl-core-HeartRate.xml +++ b/resources/nl-core/nl-core-HeartRate.xml @@ -46,17 +46,6 @@ <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-Patient" /> </type> </element> - <element id="Observation.hasMember"> - <path value="Observation.hasMember" /> - <type> - <code value="Reference" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/Observation" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" /> - <targetProfile value="http://hl7.org/fhir/StructureDefinition/MolecularSequence" /> - <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.HeartbeatRegularity" /> - <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HeartRate.InterpretationHeartRate" /> - </type> - </element> <element id="Observation.hasMember:heartbeatRegularity"> <path value="Observation.hasMember" /> <sliceName value="heartbeatRegularity" />