From a7dd6b5e62eb08684c4a5532dcdafaf79d09be1c Mon Sep 17 00:00:00 2001 From: Ardon Toonstra Date: Thu, 12 Sep 2024 14:57:21 +0200 Subject: [PATCH 01/21] Initial commit of new profiling for AnatomicalLocation including a dummy Problem example --- ...-core-AnatomicalLocation-BodyStructure.xml | 36 +++++ .../nl-core-AnatomicalLocation.xml | 36 +++++ ...xample-zib-Problem.StructureDefinition.xml | 32 ++++ .../zib-AnatomicalLocation-BodyStructure.xml | 74 ++++++++++ .../zib-AnatomicalLocation.xml | 75 ++++++++++ ...ogy_version_3-2.16.840.1.113883.6.43.1.xml | 26 ++++ ....4.3.11.60.40.2.20.7.2--20240415000000.xml | 137 ++++++++++++++++++ ....4.3.11.60.40.2.20.7.1--20240415000000.xml | 67 +++++++++ ....2.4.3.11.60.121.11.11--20240415000000.xml | 54 +++++++ ....4.3.11.60.40.2.20.7.3--20240415000000.xml | 61 ++++++++ 10 files changed, 598 insertions(+) create mode 100644 nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml create mode 100644 nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml create mode 100644 zib/Example-zib-Problem.StructureDefinition.xml create mode 100644 zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml create mode 100644 zib/StructureDefinitions/zib-AnatomicalLocation.xml create mode 100644 zib/vocabulary/generated/CodeSystem-International_Classification_of_Diseases_for_Oncology_version_3-2.16.840.1.113883.6.43.1.xml create mode 100644 zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml create mode 100644 zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml create mode 100644 zib/vocabulary/generated/ValueSet-LocatieCodelijsten-2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000.xml create mode 100644 zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml new file mode 100644 index 0000000..8065ee4 --- /dev/null +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -0,0 +1,36 @@ + + + + + +
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="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> + <purpose value="A derived profile from [zib-AnatomicalLocation-BodyStructure](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure) to provide a version better suited for implementation purposes." /> + <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="complex-type" /> + <abstract value="false" /> + <type value="BodyStructure" /> + <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure" /> + <derivation value="constraint" /> + <differential> + <element id="BodyStructure"> + <path value="BodyStructure" /> + <alias value="nl-core-AnatomicalLocation-BodyStructure" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml new file mode 100644 index 0000000..629f475 --- /dev/null +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="nl-core-AnatomicalLocation" /> + <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-AnatomicalLocation" /> + <name value="NlcoreAnatomicalLocation" /> + <title value="nl core AnatomicalLocation" /> + <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="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> + <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000>) with a binding strength of _required_." /> + <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="complex-type" /> + <abstract value="false" /> + <type value="CodeableConcept" /> + <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation" /> + <derivation value="constraint" /> + <differential> + <element id="CodeableConcept"> + <path value="CodeableConcept" /> + <alias value="nl-core-AnatomicalLocation" /> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/zib/Example-zib-Problem.StructureDefinition.xml b/zib/Example-zib-Problem.StructureDefinition.xml new file mode 100644 index 0000000..3c518ab --- /dev/null +++ b/zib/Example-zib-Problem.StructureDefinition.xml @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="Example-zib-Problem" /> + <url value="https://example.org/fhir/StructureDefinition/Example-zib-Problem" /> + <name value="ExampleZibProblem" /> + <status value="draft" /> + <fhirVersion value="4.0.1" /> + <mapping> + <identity value="zib-problem" /> + <uri value="https://zibs.nl/wiki/Problem" /> + </mapping> + <kind value="resource" /> + <abstract value="false" /> + <type value="Condition" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Condition" /> + <derivation value="constraint" /> + <differential> + <element id="Condition.bodySite"> + <path value="Condition.bodySite" /> + <max value="1" /> + <type> + <code value="CodeableConcept" /> + <profile value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation" /> + </type> + <mapping> + <identity value="zib-problem" /> + <map value="NL-CM:5.1.14" /> + <comment value="ProblemAnatomicalLocation" /> + </mapping> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml new file mode 100644 index 0000000..4426c2b --- /dev/null +++ b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="zib-AnatomicalLocation-BodyStructure" /> + <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-AnatomicalLocation-BodyStructure" /> + <name value="ZibAnatomicalLocationBodyStructure" /> + <title value="zib AnatomicalLocation BodyStructure" /> + <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="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> + <purpose value="This BodyStructure resource represents the complete Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN))." /> + <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-anatomicallocation-v1.0.3-2024EN" /> + <uri value="https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)" /> + <name value="zib AnatomicalLocation-v1.0.3(2024EN)" /> + </mapping> + <kind value="resource" /> + <abstract value="false" /> + <type value="BodyStructure" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> + <derivation value="constraint" /> + <differential> + <element id="BodyStructure"> + <path value="BodyStructure" /> + <definition value="The zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.4" /> + <comment value="AnatomicalLocation" /> + </mapping> + </element> + <element id="BodyStructure.location"> + <path value="BodyStructure.location" /> + <short value="Location" /> + <definition value="Localisation on/in the body." /> + <alias value="Locatie" /> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> + </binding> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.4" /> + <comment value="Location" /> + </mapping> + </element> + <element id="BodyStructure.locationQualifier"> + <path value="BodyStructure.locationQualifier" /> + <short value="Laterality" /> + <definition value="Laterality adds information about the body side to the anatomic location, e.g. left." /> + <max value="1" /> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000" /> + </binding> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.3" /> + <comment value="Laterality" /> + </mapping> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml new file mode 100644 index 0000000..dee49aa --- /dev/null +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="zib-AnatomicalLocation" /> + <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-AnatomicalLocation" /> + <name value="ZibAnatomicalLocation" /> + <title value="zib AnatomicalLocation" /> + <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="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> + <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). It provides a BodyStructure reference that caputures the Laterality concept. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> + <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-anatomicallocation-v1.0.3-2024EN" /> + <uri value="https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)" /> + <name value="zib AnatomicalLocation-v1.0.3(2024EN)" /> + </mapping> + <kind value="complex-type" /> + <abstract value="true" /> + <type value="CodeableConcept" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CodeableConcept" /> + <derivation value="constraint" /> + <differential> + <element id="CodeableConcept"> + <path value="CodeableConcept" /> + <short value="Location" /> + <definition value="Localisation on/in the body." /> + <comment value="The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the BodyStructure. element. **Note 1:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process. **Note 2:** Since this is a datatype profile, the binding has been applied to the `.coding` element, as it is not possible to bind the ValueSet to the root element." /> + <alias value="Locatie" /> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.4" /> + <comment value="Location" /> + </mapping> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.4" /> + <comment value="AnatomicalLocation" /> + </mapping> + </element> + <element id="CodeableConcept.extension:bodyStructureReference"> + <path value="CodeableConcept.extension" /> + <sliceName value="bodyStructureReference" /> + <type> + <code value="Extension" /> + <profile value="http://hl7.org/fhir/StructureDefinition/bodySite" /> + </type> + <isModifier value="false" /> + </element> + <element id="CodeableConcept.extension:bodyStructureReference.value[x]"> + <path value="CodeableConcept.extension.value[x]" /> + <type> + <code value="Reference" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure" /> + </type> + </element> + <element id="CodeableConcept.coding"> + <path value="CodeableConcept.coding" /> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> + </binding> + </element> + </differential> +</StructureDefinition> \ No newline at end of file diff --git a/zib/vocabulary/generated/CodeSystem-International_Classification_of_Diseases_for_Oncology_version_3-2.16.840.1.113883.6.43.1.xml b/zib/vocabulary/generated/CodeSystem-International_Classification_of_Diseases_for_Oncology_version_3-2.16.840.1.113883.6.43.1.xml new file mode 100644 index 0000000..0f8d1f7 --- /dev/null +++ b/zib/vocabulary/generated/CodeSystem-International_Classification_of_Diseases_for_Oncology_version_3-2.16.840.1.113883.6.43.1.xml @@ -0,0 +1,26 @@ +<CodeSystem xmlns="http://hl7.org/fhir"> + <id value="2.16.840.1.113883.6.43.1"/> + <language value="en-US"/> + <text> + <status value="empty"/> + <div xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">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> + <extension url="http://hl7.org/fhir/StructureDefinition/resource-effectivePeriod"> + <valuePeriod> + <start value="2009-09-11T12:00:00+00:00"/> + </valuePeriod> + </extension> + <url value="urn:oid:2.16.840.1.113883.6.43.1"/> + <identifier> + <use value="official"/> + <system value="urn:ietf:rfc:3986"/> + <value value="urn:oid:2.16.840.1.113883.6.43.1"/> + </identifier> + <version value="2009-09-11T12:00:00"/> + <name value="International_Classification_of_Diseases_for_Oncology_version_3"/> + <title value="International Classification of Diseases for Oncology, version 3."/> + <status value="unknown"/> + <publisher value="ART-DECOR"/> + <description value="International Classification of Diseases for Oncology, version 3. For more information see http://www.who.int/classifications/icd/adaptations/oncology/en/."/> + <content value="not-present"/> +</CodeSystem> diff --git a/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml new file mode 100644 index 0000000..ae3920b --- /dev/null +++ b/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml @@ -0,0 +1,137 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000"/> + <meta> + <source value="http://acceptance.art-decor.org/fhir/4.0/zib2024bbr-"/> + <profile value="http://hl7.org/fhir/StructureDefinition/shareablevalueset"/> + <!--<profile value="http://hl7.org/fhir/4.0/StructureDefinition/ValueSet"/>--> + <tag> + <system value="http://hl7.org/fhir/FHIR-version"/> + <code value="4.0.1"/> + </tag> + </meta> + <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> + <extension url="http://hl7.org/fhir/StructureDefinition/resource-effectivePeriod"> + <valuePeriod> + <start value="2024-04-15T00:00:00+00:00"/> + </valuePeriod> + </extension> + <url value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000"/> + <identifier> + <use value="official"/> + <system value="urn:ietf:rfc:3986"/> + <value value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2"/> + </identifier> + <version value="2024-04-15T00:00:00"/> + <name value="LateraliteitCodelijst"/> + <title value="LateraliteitCodelijst"/> + <status value="draft"/> + <experimental value="false"/> + <publisher value="Registratie aan de bron"/> + <contact> + <name value="Registratie aan de bron"/> + <telecom> + <system value="url"/> + <value value="https://www.registratieaandebron.nl"/> + </telecom> + <telecom> + <system value="url"/> + <value value="https://www.zibs.nl"/> + </telecom> + </contact> + <description value="LateraliteitCodelijst"/> + <immutable value="false"/> + <copyright value="This artefact includes content from SNOMED Clinical Terms® (SNOMED CT®) which is copyright of the International Health Terminology Standards Development Organisation (IHTSDO). Implementers of these artefacts must have the appropriate SNOMED CT Affiliate license - for more information contact http://www.snomed.org/snomed-ct/getsnomed-ct or info@snomed.org."/> + <compose> + <include> + <system value="http://terminology.hl7.org/CodeSystem/v3-NullFlavor"/> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Anders"/> + </extension> + <code value="OTH"/> + <display value="Other"/> + </concept> + </include> + <include> + <system value="http://snomed.info/sct"/> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Links"/> + </extension> + <code value="7771000"/> + <display value="left"/> + <designation> + <language value="en-US"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Left"/> + </designation> + <designation> + <language value="nl-NL"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Links"/> + </designation> + </concept> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Rechts"/> + </extension> + <code value="24028007"/> + <display value="right"/> + <designation> + <language value="en-US"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Right"/> + </designation> + <designation> + <language value="nl-NL"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Rechts"/> + </designation> + </concept> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Rechts en links"/> + </extension> + <code value="51440002"/> + <display value="bilateral"/> + <designation> + <language value="en-US"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Right and left"/> + </designation> + <designation> + <language value="nl-NL"/> + <use> + <system value="http://snomed.info/sct"/> + <code value="900000000000013009"/> + <display value="Synonym"/> + </use> + <value value="Bilateraal"/> + </designation> + </concept> + </include> + </compose> +</ValueSet> diff --git a/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml new file mode 100644 index 0000000..5c5729d --- /dev/null +++ b/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml @@ -0,0 +1,67 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000"/> + <meta> + <source value="http://acceptance.art-decor.org/fhir/4.0/zib2024bbr-"/> + <profile value="http://hl7.org/fhir/StructureDefinition/shareablevalueset"/> + <!--<profile value="http://hl7.org/fhir/4.0/StructureDefinition/ValueSet"/>--> + <tag> + <system value="http://hl7.org/fhir/FHIR-version"/> + <code value="4.0.1"/> + </tag> + </meta> + <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> + <extension url="http://hl7.org/fhir/StructureDefinition/resource-effectivePeriod"> + <valuePeriod> + <start value="2024-04-15T00:00:00+00:00"/> + </valuePeriod> + </extension> + <url value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000"/> + <identifier> + <use value="official"/> + <system value="urn:ietf:rfc:3986"/> + <value value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1"/> + </identifier> + <version value="2024-04-15T00:00:00"/> + <name value="LocatieCodelijst"/> + <title value="LocatieCodelijst"/> + <status value="draft"/> + <experimental value="false"/> + <publisher value="Registratie aan de bron"/> + <contact> + <name value="Registratie aan de bron"/> + <telecom> + <system value="url"/> + <value value="https://www.registratieaandebron.nl"/> + </telecom> + <telecom> + <system value="url"/> + <value value="https://www.zibs.nl"/> + </telecom> + </contact> + <description value="LocatieCodelijst"/> + <immutable value="false"/> + <copyright value="This artefact includes content from SNOMED Clinical Terms® (SNOMED CT®) which is copyright of the International Health Terminology Standards Development Organisation (IHTSDO). Implementers of these artefacts must have the appropriate SNOMED CT Affiliate license - for more information contact http://www.snomed.org/snomed-ct/getsnomed-ct or info@snomed.org."/> + <compose> + <include> + <system value="http://terminology.hl7.org/CodeSystem/v3-NullFlavor"/> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Anders"/> + </extension> + <code value="OTH"/> + <display value="Other"/> + </concept> + </include> + <include> + <system value="http://snomed.info/sct"/> + <filter> + <property value="concept"/> + <op value="descendent-of"/> + <value value="442083009"/> + </filter> + </include> + </compose> +</ValueSet> diff --git a/zib/vocabulary/generated/ValueSet-LocatieCodelijsten-2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LocatieCodelijsten-2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000.xml new file mode 100644 index 0000000..c6292d6 --- /dev/null +++ b/zib/vocabulary/generated/ValueSet-LocatieCodelijsten-2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000.xml @@ -0,0 +1,54 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000"/> + <meta> + <source value="http://acceptance.art-decor.org/fhir/4.0/zib2024bbr-"/> + <profile value="http://hl7.org/fhir/StructureDefinition/shareablevalueset"/> + <!--<profile value="http://hl7.org/fhir/4.0/StructureDefinition/ValueSet"/>--> + <tag> + <system value="http://hl7.org/fhir/FHIR-version"/> + <code value="4.0.1"/> + </tag> + </meta> + <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> + <extension url="http://hl7.org/fhir/StructureDefinition/resource-effectivePeriod"> + <valuePeriod> + <start value="2024-04-15T00:00:00+00:00"/> + </valuePeriod> + </extension> + <url value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000"/> + <identifier> + <use value="official"/> + <system value="urn:ietf:rfc:3986"/> + <value value="urn:oid:2.16.840.1.113883.2.4.3.11.60.121.11.11"/> + </identifier> + <version value="2024-04-15T00:00:00"/> + <name value="LocatieCodelijsten"/> + <title value="LocatieCodelijsten"/> + <status value="active"/> + <experimental value="false"/> + <publisher value="Registratie aan de bron"/> + <contact> + <name value="Registratie aan de bron"/> + <telecom> + <system value="url"/> + <value value="https://www.registratieaandebron.nl"/> + </telecom> + <telecom> + <system value="url"/> + <value value="https://www.zibs.nl"/> + </telecom> + </contact> + <description value="Value set combining the distinct value sets that the zib nl.zorg.part.AnatomicalLocation binds to for NL-CM:20.7.4 Location. This value set as such does not exist in the zib but facilitates referencing all these value sets at the same time"/> + <immutable value="false"/> + <compose> + <include> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000"/> + </include> + <include> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000"/> + </include> + </compose> +</ValueSet> diff --git a/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml new file mode 100644 index 0000000..ea21690 --- /dev/null +++ b/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml @@ -0,0 +1,61 @@ +<ValueSet xmlns="http://hl7.org/fhir"> + <id value="2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000"/> + <meta> + <source value="http://acceptance.art-decor.org/fhir/4.0/zib2024bbr-"/> + <profile value="http://hl7.org/fhir/StructureDefinition/shareablevalueset"/> + <!--<profile value="http://hl7.org/fhir/4.0/StructureDefinition/ValueSet"/>--> + <tag> + <system value="http://hl7.org/fhir/FHIR-version"/> + <code value="4.0.1"/> + </tag> + </meta> + <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> + <extension url="http://hl7.org/fhir/StructureDefinition/resource-effectivePeriod"> + <valuePeriod> + <start value="2024-04-15T00:00:00+00:00"/> + </valuePeriod> + </extension> + <url value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000"/> + <identifier> + <use value="official"/> + <system value="urn:ietf:rfc:3986"/> + <value value="urn:oid:2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3"/> + </identifier> + <version value="2024-04-15T00:00:00"/> + <name value="LocatieICD_O_3Codelijst"/> + <title value="LocatieICD-O-3Codelijst"/> + <status value="draft"/> + <experimental value="false"/> + <publisher value="Registratie aan de bron"/> + <contact> + <name value="Registratie aan de bron"/> + <telecom> + <system value="url"/> + <value value="https://www.registratieaandebron.nl"/> + </telecom> + <telecom> + <system value="url"/> + <value value="https://www.zibs.nl"/> + </telecom> + </contact> + <description value="ICD-O-3 - International Classification of Diseases for Oncology, version 3 (Topography codes)"/> + <immutable value="false"/> + <compose> + <include> + <system value="urn:oid:2.16.840.1.113883.6.43.1"/> + </include> + <include> + <system value="http://terminology.hl7.org/CodeSystem/v3-NullFlavor"/> + <concept> + <extension url="http://hl7.org/fhir/StructureDefinition/valueset-concept-comments"> + <valueString value="Anders"/> + </extension> + <code value="OTH"/> + <display value="Other"/> + </concept> + </include> + </compose> +</ValueSet> From 9aa499b387ae2d613a518fb21f305130a02e742e Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 1 Oct 2024 09:23:49 +0200 Subject: [PATCH 02/21] Moved some of the implementation guidance to the purpose of the profile. Improved guidance. --- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index dee49aa..48b7adc 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). It provides a BodyStructure reference that caputures the Laterality concept. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> + <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> <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 @@ <path value="CodeableConcept" /> <short value="Location" /> <definition value="Localisation on/in the body." /> - <comment value="The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the BodyStructure. element. **Note 1:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process. **Note 2:** Since this is a datatype profile, the binding has been applied to the `.coding` element, as it is not possible to bind the ValueSet to the root element." /> + <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the BodyStructure. element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> From 215796dc094929841d88080227a2327f1d872810 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 8 Oct 2024 09:39:13 +0200 Subject: [PATCH 03/21] Moved binding from coding to root CodeableConcept and fixed missing bits of the profiles based on QA --- .../nl-core-AnatomicalLocation.xml | 16 +++++++++++++--- .../zib-AnatomicalLocation-BodyStructure.xml | 7 +++++-- .../zib-AnatomicalLocation.xml | 17 +++++------------ 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml index 629f475..25ea68f 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -2,9 +2,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="nl-core-AnatomicalLocation" /> <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> + <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-AnatomicalLocation" /> <name value="NlcoreAnatomicalLocation" /> <title value="nl core AnatomicalLocation" /> @@ -32,5 +30,17 @@ <path value="CodeableConcept" /> <alias value="nl-core-AnatomicalLocation" /> </element> + <element id="CodeableConcept.extension:bodyStructureReference"> + <path value="CodeableConcept.extension" /> + <sliceName value="bodyStructureReference" /> + </element> + <element id="CodeableConcept.extension:bodyStructureReference.value[x]"> + <path value="CodeableConcept.extension.value[x]" /> + <type> + <code value="Reference" /> + <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation-BodyStructure" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> + </type> + </element> </differential> </StructureDefinition> \ No newline at end of file diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml index 4426c2b..120597e 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml @@ -26,17 +26,19 @@ <name value="zib AnatomicalLocation-v1.0.3(2024EN)" /> </mapping> <kind value="resource" /> - <abstract value="false" /> + <abstract value="true" /> <type value="BodyStructure" /> <baseDefinition value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> <derivation value="constraint" /> <differential> <element id="BodyStructure"> <path value="BodyStructure" /> + <short value="AnatomicalLocation" /> <definition value="The zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <alias value="AnatomischeLocatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> - <map value="NL-CM:20.7.4" /> + <map value="NL-CM:20.7.1" /> <comment value="AnatomicalLocation" /> </mapping> </element> @@ -59,6 +61,7 @@ <path value="BodyStructure.locationQualifier" /> <short value="Laterality" /> <definition value="Laterality adds information about the body side to the anatomic location, e.g. left." /> + <alias value="Lateraliteit" /> <max value="1" /> <binding> <strength value="required" /> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 48b7adc..5c5e973 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -37,16 +37,15 @@ <definition value="Localisation on/in the body." /> <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the BodyStructure. element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> + </binding> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> <map value="NL-CM:20.7.4" /> <comment value="Location" /> </mapping> - <mapping> - <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> - <map value="NL-CM:20.7.4" /> - <comment value="AnatomicalLocation" /> - </mapping> </element> <element id="CodeableConcept.extension:bodyStructureReference"> <path value="CodeableConcept.extension" /> @@ -62,14 +61,8 @@ <type> <code value="Reference" /> <targetProfile value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure" /> + <targetProfile value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> </type> </element> - <element id="CodeableConcept.coding"> - <path value="CodeableConcept.coding" /> - <binding> - <strength value="required" /> - <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> - </binding> - </element> </differential> </StructureDefinition> \ No newline at end of file From 90d5b36a4f8c14a4f0f72a1eaac2e3d4e39ea8f7 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 8 Oct 2024 11:36:33 +0200 Subject: [PATCH 04/21] Added release-notes --- release-notes.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 release-notes.md diff --git a/release-notes.md b/release-notes.md new file mode 100644 index 0000000..79f42a0 --- /dev/null +++ b/release-notes.md @@ -0,0 +1,8 @@ +## AnatomicalLocation +### zib-AnatomicalLocation +* `CodeableConcept` ; textual ; Refined guidance for Location and Laterality ; ZIBFHIR-113 +* `.extension:bodyStructureReference` ; extension ; Replaced ExtAnatomicalLocationLaterality with BodyStructureReference for Laterality ; ZIBFHIR-113 +* `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier`; ZIBFHIR-113 + +### zib-AnatomicalLocation-BodyStructure +* New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension (ZIBFHIR-113). \ No newline at end of file From f52fabbf5faa3497c18a40a0108136b445603239 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 8 Oct 2024 12:09:49 +0200 Subject: [PATCH 05/21] Fixed nl-core profile based on QA and improved wording in zib-AnatomicalLocation --- .../nl-core-AnatomicalLocation-BodyStructure.xml | 4 ++-- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml index 8065ee4..494a1bf 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -19,10 +19,10 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="A derived profile from [zib-AnatomicalLocation-BodyStructure](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure) to provide a version better suited for implementation purposes." /> + <purpose value="A derived profile from [zib-AnatomicalLocation-BodyStructure](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure) 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="complex-type" /> + <kind value="resource" /> <abstract value="false" /> <type value="BodyStructure" /> <baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure" /> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 5c5e973..e684fa8 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -35,7 +35,7 @@ <path value="CodeableConcept" /> <short value="Location" /> <definition value="Localisation on/in the body." /> - <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the BodyStructure. element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> + <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> <binding> <strength value="required" /> From 1fe5d699b219ac69bf9b58f67c45c8000378fb48 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Wed, 9 Oct 2024 09:23:54 +0200 Subject: [PATCH 06/21] Satisfy nl-core-overwrite QA --- .../nl-core-AnatomicalLocation-BodyStructure.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml index 494a1bf..ed36eb3 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -2,9 +2,7 @@ <StructureDefinition xmlns="http://hl7.org/fhir"> <id value="nl-core-AnatomicalLocation-BodyStructure" /> <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> + <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-AnatomicalLocation-BodyStructure" /> <name value="NlcoreAnatomicalLocationBodyStructure" /> <title value="nl core AnatomicalLocation BodyStructure" /> @@ -30,6 +28,7 @@ <differential> <element id="BodyStructure"> <path value="BodyStructure" /> + <definition value="The nl-core AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="nl-core-AnatomicalLocation-BodyStructure" /> </element> </differential> From c6615cbfbed5586abb433cba2ea5087dc5397ff6 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Wed, 9 Oct 2024 09:33:21 +0200 Subject: [PATCH 07/21] Satisfy 2.0 nl-core-overwrite QA --- .../nl-core-AnatomicalLocation-BodyStructure.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml index ed36eb3..c296c15 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -28,7 +28,7 @@ <differential> <element id="BodyStructure"> <path value="BodyStructure" /> - <definition value="The nl-core AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <definition value="The nl-core AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="nl-core-AnatomicalLocation-BodyStructure" /> </element> </differential> From 6574c3b6fb6a2166824931e41632b8de3f831ef7 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Wed, 9 Oct 2024 12:30:53 +0200 Subject: [PATCH 08/21] Added space before seperator --- release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes.md b/release-notes.md index 79f42a0..32f4bc3 100644 --- a/release-notes.md +++ b/release-notes.md @@ -2,7 +2,7 @@ ### zib-AnatomicalLocation * `CodeableConcept` ; textual ; Refined guidance for Location and Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; extension ; Replaced ExtAnatomicalLocationLaterality with BodyStructureReference for Laterality ; ZIBFHIR-113 -* `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier`; ZIBFHIR-113 +* `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier` ; ZIBFHIR-113 ### zib-AnatomicalLocation-BodyStructure * New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension (ZIBFHIR-113). \ No newline at end of file From 4307cdd19ab08e8270ff1100b594fe7c33ba56ad Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Fri, 11 Oct 2024 09:42:51 +0200 Subject: [PATCH 09/21] Updated release notes --- release-notes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release-notes.md b/release-notes.md index 32f4bc3..5ca20dd 100644 --- a/release-notes.md +++ b/release-notes.md @@ -5,4 +5,4 @@ * `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier` ; ZIBFHIR-113 ### zib-AnatomicalLocation-BodyStructure -* New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension (ZIBFHIR-113). \ No newline at end of file +* New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension. ; ZIBFHIR-113 \ No newline at end of file From af0cdd73e1bb9d5866b40a6c2f3cb12c96bee0f0 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 11:42:24 +0100 Subject: [PATCH 10/21] Removed binding from root datatype profile added instructions for profiles to include binding in host profile Reload terminology and remove dummy profile --- .../nl-core-AnatomicalLocation.xml | 2 +- ...xample-zib-Problem.StructureDefinition.xml | 32 ------------------- .../zib-AnatomicalLocation.xml | 6 +--- ....4.3.11.60.40.2.20.7.2--20240415000000.xml | 8 ++--- ....4.3.11.60.40.2.20.7.1--20240415000000.xml | 2 +- ....4.3.11.60.40.2.20.7.3--20240415000000.xml | 2 +- 6 files changed, 8 insertions(+), 44 deletions(-) delete mode 100644 zib/Example-zib-Problem.StructureDefinition.xml diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml index 25ea68f..9572920 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20200901000000>) with a binding strength of _required_." /> + <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _required_." /> <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="complex-type" /> diff --git a/zib/Example-zib-Problem.StructureDefinition.xml b/zib/Example-zib-Problem.StructureDefinition.xml deleted file mode 100644 index 3c518ab..0000000 --- a/zib/Example-zib-Problem.StructureDefinition.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<StructureDefinition xmlns="http://hl7.org/fhir"> - <id value="Example-zib-Problem" /> - <url value="https://example.org/fhir/StructureDefinition/Example-zib-Problem" /> - <name value="ExampleZibProblem" /> - <status value="draft" /> - <fhirVersion value="4.0.1" /> - <mapping> - <identity value="zib-problem" /> - <uri value="https://zibs.nl/wiki/Problem" /> - </mapping> - <kind value="resource" /> - <abstract value="false" /> - <type value="Condition" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Condition" /> - <derivation value="constraint" /> - <differential> - <element id="Condition.bodySite"> - <path value="Condition.bodySite" /> - <max value="1" /> - <type> - <code value="CodeableConcept" /> - <profile value="http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation" /> - </type> - <mapping> - <identity value="zib-problem" /> - <map value="NL-CM:5.1.14" /> - <comment value="ProblemAnatomicalLocation" /> - </mapping> - </element> - </differential> -</StructureDefinition> \ No newline at end of file diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index e684fa8..8155234 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> + <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _required_." /> <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> @@ -37,10 +37,6 @@ <definition value="Localisation on/in the body." /> <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> - <binding> - <strength value="required" /> - <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> - </binding> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> <map value="NL-CM:20.7.4" /> diff --git a/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml index ae3920b..56dc003 100644 --- a/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml +++ b/zib/vocabulary/generated/ValueSet-LateraliteitCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.2--20240415000000.xml @@ -27,7 +27,7 @@ <version value="2024-04-15T00:00:00"/> <name value="LateraliteitCodelijst"/> <title value="LateraliteitCodelijst"/> - <status value="draft"/> + <status value="active"/> <experimental value="false"/> <publisher value="Registratie aan de bron"/> <contact> @@ -62,7 +62,7 @@ <valueString value="Links"/> </extension> <code value="7771000"/> - <display value="left"/> + <display value="Links"/> <designation> <language value="en-US"/> <use> @@ -87,7 +87,7 @@ <valueString value="Rechts"/> </extension> <code value="24028007"/> - <display value="right"/> + <display value="Rechts"/> <designation> <language value="en-US"/> <use> @@ -112,7 +112,7 @@ <valueString value="Rechts en links"/> </extension> <code value="51440002"/> - <display value="bilateral"/> + <display value="Bilateraal"/> <designation> <language value="en-US"/> <use> diff --git a/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml index 5c5729d..bd675e0 100644 --- a/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml +++ b/zib/vocabulary/generated/ValueSet-LocatieCodelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.1--20240415000000.xml @@ -27,7 +27,7 @@ <version value="2024-04-15T00:00:00"/> <name value="LocatieCodelijst"/> <title value="LocatieCodelijst"/> - <status value="draft"/> + <status value="active"/> <experimental value="false"/> <publisher value="Registratie aan de bron"/> <contact> diff --git a/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml b/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml index ea21690..ce2efe0 100644 --- a/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml +++ b/zib/vocabulary/generated/ValueSet-LocatieICD_O_3Codelijst-2.16.840.1.113883.2.4.3.11.60.40.2.20.7.3--20240415000000.xml @@ -27,7 +27,7 @@ <version value="2024-04-15T00:00:00"/> <name value="LocatieICD_O_3Codelijst"/> <title value="LocatieICD-O-3Codelijst"/> - <status value="draft"/> + <status value="active"/> <experimental value="false"/> <publisher value="Registratie aan de bron"/> <contact> From e06bb1d06f3c7cdccac5fe79a8844de513abb31b Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 11:54:20 +0100 Subject: [PATCH 11/21] Updated release-notes to latest convention --- release-notes.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release-notes.md b/release-notes.md index 5ca20dd..fef1519 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,8 +1,8 @@ ## AnatomicalLocation -### zib-AnatomicalLocation +### zib-AnatomicalLocation, nl-core-AnatomicalLocation * `CodeableConcept` ; textual ; Refined guidance for Location and Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; extension ; Replaced ExtAnatomicalLocationLaterality with BodyStructureReference for Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier` ; ZIBFHIR-113 -### zib-AnatomicalLocation-BodyStructure +### zib-AnatomicalLocation-BodyStructure, nl-core-AnatomicalLocation-BodyStructure * New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension. ; ZIBFHIR-113 \ No newline at end of file From d9a1400d9e974d591b1dadf608aca3ff4b2c41e6 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 12:26:50 +0100 Subject: [PATCH 12/21] New profiling approach - mapped location on coding slice --- .../nl-core-AnatomicalLocation.xml | 2 +- .../zib-AnatomicalLocation.xml | 30 ++++++++++++++++++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml index 9572920..3670059 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _required_." /> + <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated." /> <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="complex-type" /> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 8155234..661eebc 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _required_." /> + <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> <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> @@ -60,5 +60,33 @@ <targetProfile value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> </type> </element> + <element id="CodeableConcept.coding"> + <path value="CodeableConcept.coding" /> + <slicing> + <discriminator> + <type value="value" /> + <path value="$this" /> + </discriminator> + <rules value="open" /> + </slicing> + <comment value="A deviation from our general profiling has been implemented in this profile. Slicing has been applied to `CodeableConcept.coding` to enable the use of the `BodyStructure` reference extension without requiring a populated coded value. This approach facilitates scenarios where only the Laterality element needs to be conveyed. The decision was made due to the Location concept’s required binding strength. If the required binding were applied on the CodeableConcept, it would mandate a coded value. This slicing approach ensures flexibility while maintaining compliance with the required binding constraints for Location." /> + </element> + <element id="CodeableConcept.coding:location"> + <path value="CodeableConcept.coding" /> + <sliceName value="location" /> + <short value="Location" /> + <definition value="Location on/in the body." /> + <alias value="Locatie" /> + <max value="1" /> + <binding> + <strength value="required" /> + <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> + </binding> + <mapping> + <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> + <map value="NL-CM:20.7.4" /> + <comment value="Location" /> + </mapping> + </element> </differential> </StructureDefinition> \ No newline at end of file From 0c5c0b768b47bccfd71cb9ba1d592f31757bbee7 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 12:40:23 +0100 Subject: [PATCH 13/21] updated release-notes --- release-notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/release-notes.md b/release-notes.md index fef1519..ba2f5f6 100644 --- a/release-notes.md +++ b/release-notes.md @@ -3,6 +3,7 @@ * `CodeableConcept` ; textual ; Refined guidance for Location and Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; extension ; Replaced ExtAnatomicalLocationLaterality with BodyStructureReference for Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier` ; ZIBFHIR-113 +* `.coding:location` ; mapping ; Moved mapping of Location to a slice on Conding ; ZIBFHIR-113 ### zib-AnatomicalLocation-BodyStructure, nl-core-AnatomicalLocation-BodyStructure * New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension. ; ZIBFHIR-113 \ No newline at end of file From 27e1594b9aa5f26a0b3c4b6befc2ea384b615a88 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 17:08:10 +0100 Subject: [PATCH 14/21] Textual improvements upon feedback --- .../zib-AnatomicalLocation-BodyStructure.xml | 2 +- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml index 120597e..df5c67c 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml @@ -34,7 +34,7 @@ <element id="BodyStructure"> <path value="BodyStructure" /> <short value="AnatomicalLocation" /> - <definition value="The zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <definition value="The zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="AnatomischeLocatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 661eebc..8e92f87 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -35,7 +35,7 @@ <path value="CodeableConcept" /> <short value="Location" /> <definition value="Localisation on/in the body." /> - <comment value="In cases where only the location is required, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> + <comment value="In cases where only the anatomical location need to be conveyed, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> From 2d29ca592478490ab6938b0259868601fc11bb6c Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Tue, 26 Nov 2024 17:37:44 +0100 Subject: [PATCH 15/21] Added invariant to check for at least having a code from the codesystems bound to location if a code value is used --- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 8e92f87..5a88003 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -37,6 +37,12 @@ <definition value="Localisation on/in the body." /> <comment value="In cases where only the anatomical location need to be conveyed, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> + <constraint> + <key value="zib-AnatomicalLocation-1" /> + <severity value="error" /> + <human value="If a code is used to represent an anatomical location, at least one code must be present from the code systems bound to the location concept." /> + <expression value="descendants().where($this.is(Coding)).exists() implies descendants().where($this.is(Coding)).where(system = 'http://snomed.info/sct' or system = 'urn:oid:2.16.840.1.113883.6.43.1').exists()" /> + </constraint> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> <map value="NL-CM:20.7.4" /> @@ -70,6 +76,7 @@ <rules value="open" /> </slicing> <comment value="A deviation from our general profiling has been implemented in this profile. Slicing has been applied to `CodeableConcept.coding` to enable the use of the `BodyStructure` reference extension without requiring a populated coded value. This approach facilitates scenarios where only the Laterality element needs to be conveyed. The decision was made due to the Location concept’s required binding strength. If the required binding were applied on the CodeableConcept, it would mandate a coded value. This slicing approach ensures flexibility while maintaining compliance with the required binding constraints for Location." /> + <condition value="zib-AnatomicalLocation-1" /> </element> <element id="CodeableConcept.coding:location"> <path value="CodeableConcept.coding" /> From 2f138271260a793ca98598e36cc51b4a54955898 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Thu, 28 Nov 2024 12:04:42 +0100 Subject: [PATCH 16/21] implemented differnt approach: removed slicing on coding and replace with guidance on binding the location valueset in host profile with extensible binding strenght --- .../nl-core-AnatomicalLocation.xml | 2 +- release-notes.md | 2 - .../zib-AnatomicalLocation.xml | 37 +------------------ 3 files changed, 2 insertions(+), 39 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml index 3670059..c2ab636 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated." /> + <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _extensible_. The binding strength differs from the zib's original binding strength of _required_ to support the use of the BodyStructure reference extension as an alternative to a coded value." /> <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="complex-type" /> diff --git a/release-notes.md b/release-notes.md index 634cf9d..9295536 100644 --- a/release-notes.md +++ b/release-notes.md @@ -10,11 +10,9 @@ * `CodeableConcept` ; textual ; Refined guidance for Location and Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; extension ; Replaced ExtAnatomicalLocationLaterality with BodyStructureReference for Laterality ; ZIBFHIR-113 * `.extension:bodyStructureReference` ; mapping ; Moved mapping of Laterality to `BodyStructure.locationQualifier` ; ZIBFHIR-113 -* `.coding:location` ; mapping ; Moved mapping of Location to a slice on Conding ; ZIBFHIR-113 ### zib-AnatomicalLocation-BodyStructure, nl-core-AnatomicalLocation-BodyStructure * New profile that maps Laterality to a native FHIR element inside the BodyStructure resource instead of a custom extension. ; ZIBFHIR-113 - ## NameInformation ### zib-NameInformation * No significant changes. diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 5a88003..41a956b 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated." /> + <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _extensible_. The binding strength differs from the zib's original binding strength of _required_ to support the use of the BodyStructure reference extension as an alternative to a coded value." /> <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> @@ -37,12 +37,6 @@ <definition value="Localisation on/in the body." /> <comment value="In cases where only the anatomical location need to be conveyed, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> <alias value="Locatie" /> - <constraint> - <key value="zib-AnatomicalLocation-1" /> - <severity value="error" /> - <human value="If a code is used to represent an anatomical location, at least one code must be present from the code systems bound to the location concept." /> - <expression value="descendants().where($this.is(Coding)).exists() implies descendants().where($this.is(Coding)).where(system = 'http://snomed.info/sct' or system = 'urn:oid:2.16.840.1.113883.6.43.1').exists()" /> - </constraint> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> <map value="NL-CM:20.7.4" /> @@ -66,34 +60,5 @@ <targetProfile value="http://hl7.org/fhir/StructureDefinition/BodyStructure" /> </type> </element> - <element id="CodeableConcept.coding"> - <path value="CodeableConcept.coding" /> - <slicing> - <discriminator> - <type value="value" /> - <path value="$this" /> - </discriminator> - <rules value="open" /> - </slicing> - <comment value="A deviation from our general profiling has been implemented in this profile. Slicing has been applied to `CodeableConcept.coding` to enable the use of the `BodyStructure` reference extension without requiring a populated coded value. This approach facilitates scenarios where only the Laterality element needs to be conveyed. The decision was made due to the Location concept’s required binding strength. If the required binding were applied on the CodeableConcept, it would mandate a coded value. This slicing approach ensures flexibility while maintaining compliance with the required binding constraints for Location." /> - <condition value="zib-AnatomicalLocation-1" /> - </element> - <element id="CodeableConcept.coding:location"> - <path value="CodeableConcept.coding" /> - <sliceName value="location" /> - <short value="Location" /> - <definition value="Location on/in the body." /> - <alias value="Locatie" /> - <max value="1" /> - <binding> - <strength value="required" /> - <valueSet value="http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000" /> - </binding> - <mapping> - <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> - <map value="NL-CM:20.7.4" /> - <comment value="Location" /> - </mapping> - </element> </differential> </StructureDefinition> \ No newline at end of file From 34235deac8f6ff4673239ac7ce13a0852f0635a0 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Fri, 29 Nov 2024 15:28:11 +0100 Subject: [PATCH 17/21] Tweak documentation --- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index 41a956b..a5d9e63 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -17,7 +17,7 @@ </telecom> </contact> <description value="An anatomical location specifies the location (e.g. foot) and laterality (e.g. left) of a body part." /> - <purpose value="This CodeableConcept resource represents Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept handles the representation of the location, while the BodyStructure profile covers both location and laterality. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _extensible_. The binding strength differs from the zib's original binding strength of _required_ to support the use of the BodyStructure reference extension as an alternative to a coded value." /> + <purpose value="This CodeableConcept resource represents the Location concept of the Dutch [zib ('Zorginformatiebouwsteen', i.e. Health and Care Information Model) AnatomicalLocation v1.0.3 (2024)](https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)). The zib AnatomicalLocation is mapped to both a profile on BodyStructure (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure>) and this CodeableConcept profile. The CodeableConcept represents the Location concept only, while the BodyStructure profile covers both the Location and Laterality concepts. Profilers can use this profile in places where zib AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _extensible_. The binding strength differs from the zib's original binding strength of _required_ to support the use of the BodyStructure reference extension as an alternative to a coded value." /> <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 @@ <path value="CodeableConcept" /> <short value="Location" /> <definition value="Localisation on/in the body." /> - <comment value="In cases where only the anatomical location need to be conveyed, or where laterality is embedded within the location code, this CodeableConcept can be used within the resource. However, when laterality needs to be explicitly recorded, the BodyStructure resource should be used, referenced through the BodyStructure Reference within this CodeableConcept. If the BodyStructure reference is used, this CodeableConcept should either remain empty or align with the `BodyStructure.location` element. **Note:** Receiving systems must support both this CodeableConcept and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems." /> + <comment value="This element can be used to convey the Location concept (NL-CM:20.7.4) of zib AnatomicalLocation when there is no Laterality information (NL-CM:20.7.3) or when the Laterality is embedded within the Location code itself. However, when the Laterality needs to be exchanged, a BodyStructure resource should be used, referenced using the `bodyStructureReference` extension. If this BodyStructure reference is used, this element should either remain empty or align with the `BodyStructure.location` element. **Note 1**: Receiving systems must support both this _CodeableConcept_ element and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems. **Note 2**: The binding strength of the ValueSet is set to _extensible_ rather than _required_ as dictated by zib AnatomicalLocation. This is done to allow the use of the `bodyStructureReference` extension instead of a coded value. When using a coded value, it MUST come from the bound ValueSet "LocatieCodelijsten"." /> <alias value="Locatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> From a74cad73e42468d1ea09fa49d4f5cc35a15ba570 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Fri, 29 Nov 2024 15:56:11 +0100 Subject: [PATCH 18/21] Add the constraint back in --- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index a5d9e63..c6f02c0 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -37,6 +37,12 @@ <definition value="Localisation on/in the body." /> <comment value="This element can be used to convey the Location concept (NL-CM:20.7.4) of zib AnatomicalLocation when there is no Laterality information (NL-CM:20.7.3) or when the Laterality is embedded within the Location code itself. However, when the Laterality needs to be exchanged, a BodyStructure resource should be used, referenced using the `bodyStructureReference` extension. If this BodyStructure reference is used, this element should either remain empty or align with the `BodyStructure.location` element. **Note 1**: Receiving systems must support both this _CodeableConcept_ element and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems. **Note 2**: The binding strength of the ValueSet is set to _extensible_ rather than _required_ as dictated by zib AnatomicalLocation. This is done to allow the use of the `bodyStructureReference` extension instead of a coded value. When using a coded value, it MUST come from the bound ValueSet "LocatieCodelijsten"." /> <alias value="Locatie" /> + <constraint> + <key value="zib-AnatomicalLocation-01" /> + <severity value="error" /> + <human value="If the anatomical location is represented using a code (instead of or in addition to the BodyStructure reference), this coding must come from zib ValueSet LocatieCodelijst or zib ValueSet LocatieICD-O-3Codelijst. Additional codings are allowed." /> + <expression value="children().where($this.is(Coding)).exists() implies children().where($this.is(Coding)).where(system = 'http://snomed.info/sct' or system = 'urn:oid:2.16.840.1.113883.6.43.1').exists()" /> + </constraint> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> <map value="NL-CM:20.7.4" /> From 0f0c5ce3afbf1756791b97487ab16e749304c2bd Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Fri, 29 Nov 2024 15:56:38 +0100 Subject: [PATCH 19/21] Tweak comments --- .../nl-core-AnatomicalLocation-BodyStructure.xml | 2 +- .../zib-AnatomicalLocation-BodyStructure.xml | 2 +- zib/StructureDefinitions/zib-AnatomicalLocation.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml index c296c15..13a8b08 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -28,7 +28,7 @@ <differential> <element id="BodyStructure"> <path value="BodyStructure" /> - <definition value="The nl-core AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation>) and this BodyStructure profile. While the CodeableConcept profile covers anatomical location, the BodyStructure resource is used to capture both the location and its laterality. When laterality is required, this BodyStructure profile should be used. In cases where laterality is either unnecessary or embedded within the location code, the CodeableConcept can be used within the resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <definition value="Zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="nl-core-AnatomicalLocation-BodyStructure" /> </element> </differential> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml index df5c67c..287ed49 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation-BodyStructure.xml @@ -34,7 +34,7 @@ <element id="BodyStructure"> <path value="BodyStructure" /> <short value="AnatomicalLocation" /> - <definition value="The zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <definition value="Zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="AnatomischeLocatie" /> <mapping> <identity value="zib-anatomicallocation-v1.0.3-2024EN" /> diff --git a/zib/StructureDefinitions/zib-AnatomicalLocation.xml b/zib/StructureDefinitions/zib-AnatomicalLocation.xml index c6f02c0..5e4cda2 100644 --- a/zib/StructureDefinitions/zib-AnatomicalLocation.xml +++ b/zib/StructureDefinitions/zib-AnatomicalLocation.xml @@ -35,7 +35,7 @@ <path value="CodeableConcept" /> <short value="Location" /> <definition value="Localisation on/in the body." /> - <comment value="This element can be used to convey the Location concept (NL-CM:20.7.4) of zib AnatomicalLocation when there is no Laterality information (NL-CM:20.7.3) or when the Laterality is embedded within the Location code itself. However, when the Laterality needs to be exchanged, a BodyStructure resource should be used, referenced using the `bodyStructureReference` extension. If this BodyStructure reference is used, this element should either remain empty or align with the `BodyStructure.location` element. **Note 1**: Receiving systems must support both this _CodeableConcept_ element and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems. **Note 2**: The binding strength of the ValueSet is set to _extensible_ rather than _required_ as dictated by zib AnatomicalLocation. This is done to allow the use of the `bodyStructureReference` extension instead of a coded value. When using a coded value, it MUST come from the bound ValueSet "LocatieCodelijsten"." /> + <comment value="This element can be used to convey the Location concept (NL-CM:20.7.4) of zib AnatomicalLocation when there is no Laterality information (NL-CM:20.7.3) or when the Laterality is embedded within the Location code itself. However, when it is required to convey a discrete Laterality next to (or in absence of) the Location, A BodyStructure resource should be used and referenced using the `bodyStructureReference` extension. If this BodyStructure reference is used, this element should either remain empty or align with the `BodyStructure.location` element. **Note 1**: Receiving systems must support both this _CodeableConcept_ element and the BodyStructure resource, as either mechanism may be employed. The rationale for this is that, in many cases, only the location will be required, simplifying the FHIR recording process for sending systems. **Note 2**: The binding strength of the ValueSet is set to _extensible_ rather than _required_ as dictated by zib AnatomicalLocation. This is done to allow the use of the `bodyStructureReference` extension instead of a coded value. When using a coded value, it MUST come from the bound ValueSet "LocatieCodelijsten"." /> <alias value="Locatie" /> <constraint> <key value="zib-AnatomicalLocation-01" /> From 8f6ba9364c7cce213ca5e6fba319e04b63e65138 Mon Sep 17 00:00:00 2001 From: Pieter Edelman <edelman@nictiz.nl> Date: Fri, 29 Nov 2024 16:14:17 +0100 Subject: [PATCH 20/21] Add sanity check to see if the proper ValueSet is bound when using zib-AnatomicalLocation --- qa.yaml | 6 +++++ util/qa/zib2024-PacakgeChecks.xml | 43 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 util/qa/zib2024-PacakgeChecks.xml diff --git a/qa.yaml b/qa.yaml index 1ec1ce1..076e6e2 100644 --- a/qa.yaml +++ b/qa.yaml @@ -3,6 +3,7 @@ ignored issues: known-issues.yml igs: - zib - nl-core + - util/qa script dir: util/qa patterns: @@ -70,6 +71,11 @@ steps: validate examples: description: Validate examples using the generic FHIR validation rules patterns: examples + additional package checks: + description: Additional profile checks specifically for this package + patterns: + - zib profiles + profile: "http://nictiz.nl/fhir/StructureDefinition/zib2024-PackageChecks" check zib compliance: patterns: - zib profiles diff --git a/util/qa/zib2024-PacakgeChecks.xml b/util/qa/zib2024-PacakgeChecks.xml new file mode 100644 index 0000000..64b53da --- /dev/null +++ b/util/qa/zib2024-PacakgeChecks.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<StructureDefinition xmlns="http://hl7.org/fhir"> + <id value="zib2024-PackageChecks" /> + <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/zib2024-PackageChecks" /> + <name value="Zib2024PackageChecks" /> + <status value="draft" /> + <publisher value="Nictiz" /> + <contact> + <name value="Nictiz" /> + <telecom> + <system value="url" /> + <value value="http://www.nictiz.nl" /> + <use value="work" /> + </telecom> + </contact> + <description value="Profile to perform checks specific to the zib2024 package" /> + <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="StructureDefinition" /> + <baseDefinition value="http://hl7.org/fhir/StructureDefinition/StructureDefinition" /> + <derivation value="constraint" /> + <differential> + <element id="StructureDefinition.differential.element"> + <path value="StructureDefinition.differential.element" /> + <constraint> + <key value="Zib2024PackageChecks-01" /> + <severity value="error" /> + <human value="When applying data type profile zib-AnatomicalLocation, the associated ValueSet should be bound" /> + <expression value="'http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation' in type.profile implies binding.valueSet = 'http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000'" /> + </constraint> + <constraint> + <key value="Zib2024PackageChecks-02" /> + <severity value="error" /> + <human value="When applying data type profile zib-AnatomicalLocation, the associated ValueSet should have binding strength extensible" /> + <expression value="'http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation' in type.profile implies binding.strength = 'extensible'" /> + </constraint> + </element> + </differential> +</StructureDefinition> \ No newline at end of file From eb8f2ef3e3976726257d5c06a0727c8507326141 Mon Sep 17 00:00:00 2001 From: Ardon Toonstra <ardon@fire.ly> Date: Thu, 26 Dec 2024 12:00:10 +0100 Subject: [PATCH 21/21] Added mapping to nl-core profiles --- .../nl-core-AnatomicalLocation-BodyStructure.xml | 7 ++++++- .../StructureDefinitions/nl-core-AnatomicalLocation.xml | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml index 13a8b08..ec63f1f 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation-BodyStructure.xml @@ -20,6 +20,11 @@ <purpose value="A derived profile from [zib-AnatomicalLocation-BodyStructure](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation-BodyStructure) 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-anatomicallocation-v1.0.3-2024EN" /> + <uri value="https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)" /> + <name value="zib AnatomicalLocation-v1.0.3(2024EN)" /> + </mapping> <kind value="resource" /> <abstract value="false" /> <type value="BodyStructure" /> @@ -28,7 +33,7 @@ <differential> <element id="BodyStructure"> <path value="BodyStructure" /> - <definition value="Zib AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> + <definition value="AnatomicalLocation is mapped to both a profile on CodeableConcept (<http://nictiz.nl/fhir/StructureDefinition/nl-core-AnatomicalLocation>) and this BodyStructure profile. When it is required to convey a discrete Laterality (NL-CM:20.7.3) next to (or in absence of) the Location (NL-CM:20.7.4), this BodyStructure profile should be used and referenced from the relevant resource. In cases where Laterality is either unnecessary or embedded within the location code itself, it can be conveyed directly in the relevant resource. **Note:** Receiving systems must support both the BodyStructure resource and the CodeableConcept in host resources, as either mechanism may be employed. Providing systems can select the appropriate mechanism based on their data requirements." /> <alias value="nl-core-AnatomicalLocation-BodyStructure" /> </element> </differential> diff --git a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml index c2ab636..a412029 100644 --- a/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml +++ b/nl-core/StructureDefinitions/nl-core-AnatomicalLocation.xml @@ -20,6 +20,11 @@ <purpose value="A derived profile from [zib-AnatomicalLocation](http://nictiz.nl/fhir/StructureDefinition/zib-AnatomicalLocation) 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. Profilers can use this profile in places where AnatomicalLocation is instantiated. In addition to using this profile, the binding should be set to ValueSet "LocatieCodelijsten" (<http://decor.nictiz.nl/fhir/ValueSet/2.16.840.1.113883.2.4.3.11.60.121.11.11--20240415000000>) with a binding strength of _extensible_. The binding strength differs from the zib's original binding strength of _required_ to support the use of the BodyStructure reference extension as an alternative to a coded value." /> <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-anatomicallocation-v1.0.3-2024EN" /> + <uri value="https://zibs.nl/wiki/AnatomicalLocation-v1.0.3(2024EN)" /> + <name value="zib AnatomicalLocation-v1.0.3(2024EN)" /> + </mapping> <kind value="complex-type" /> <abstract value="false" /> <type value="CodeableConcept" />