Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zib-HealthcareProvider #10

Draft
wants to merge 33 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
24a6126
Added base profile and extension
Ashwin-nictiz Sep 7, 2024
f857158
Changed the mapping identity to the 2024 version
Ashwin-nictiz Sep 7, 2024
61b5668
Run addDataToZib script
Ashwin-nictiz Sep 7, 2024
308b81d
Changed the purpoose to 2024 and run scrip adddatafromzib in nl-core …
Ashwin-nictiz Sep 7, 2024
1c43abe
Mapping of extension in 2024 and deleted the version element, added t…
Ashwin-nictiz Sep 9, 2024
156c4df
Moved the profiles to the StructureDef folder
Ashwin-nictiz Sep 9, 2024
7128f54
Added code spec extension
Ashwin-nictiz Sep 9, 2024
081cf68
Added terminology
Ashwin-nictiz Sep 10, 2024
583c0e8
Added conceptmaps and valuesets changes also known-issues.
Ashwin-nictiz Sep 10, 2024
116be3b
Removed root concept and adjust adress type to 2024
Ashwin-nictiz Sep 10, 2024
adb5006
Added release notes
Ashwin-nictiz Sep 10, 2024
1ac8fe3
Resave forge?
Ashwin-nictiz Sep 11, 2024
1014130
Commen value updated with OTH
Ashwin-nictiz Sep 11, 2024
b0c71ed
Added release note about the comment on houseNumberIndication
Ashwin-nictiz Sep 11, 2024
cce6061
Terminology update
Ashwin-nictiz Sep 12, 2024
d2809e2
zib-HealthcareProvider: base profile, valuesets
AmyKoo1 Sep 17, 2024
efb4336
Feedback changes
Ashwin-nictiz Sep 19, 2024
599b5e8
Deleted version element in the concept maps and also move to the manu…
Ashwin-nictiz Sep 20, 2024
ced92f5
Updated release-notes.md to latest convention documented in ZIBFHIR20…
ArdonToonstra Sep 25, 2024
6965cf8
Aligned constraint name with profiling guidelines
ArdonToonstra Sep 25, 2024
830884b
Added known issues
AmyKoo1 Sep 25, 2024
51af961
zib ContactInformation-EmailAddresses en zib ContactInformation-Telep…
AmyKoo1 Sep 25, 2024
d6e5ebb
Merge branch 'main' into zib-ContactInformation
AmyKoo1 Sep 26, 2024
36fe60c
added valuesets, codesystem, conceptmaps and release notes
AmyKoo1 Sep 26, 2024
3f8f738
Merge branch 'main' into zib-HealthcareProvider
AmyKoo1 Sep 26, 2024
aedce51
updated known issues
AmyKoo1 Sep 26, 2024
5669cec
textual changes, updated known-issues and release-notes
AmyKoo1 Oct 2, 2024
1efa7c3
Merge branch 'zib-AddressInformation' into zib-HealthcareProvider
AmyKoo1 Oct 7, 2024
3b821fd
removed redundant elements
AmyKoo1 Oct 7, 2024
13e4b3a
add ext-CodeSpecification
AmyKoo1 Oct 8, 2024
e13a0a3
Merge branch 'zib-ContactInformation' into zib-HealthcareProvider
AmyKoo1 Oct 8, 2024
50419d1
updated known issues
AmyKoo1 Oct 9, 2024
29d7dd0
updated release notes
AmyKoo1 Oct 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions known-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,45 @@

issues should occur: true

zib-HealthcareProvider:
zib deviations:
Location.address:
- datatype: Address instead of a reference
reason: An address in FHIR is represented using the Address datatype, not as a separate resource.
- cardinality: 0..1 instead of 0..*
reason: The cardinality mismatch between the zib (0..*) and FHIR (0..1) is explained by the restriction of FHIR to limit the Location.address to a physical address while the zib allows for other types of addresses (e.g. a postal address). Other types of addresses than a physical address are given in Organization.address which is referenced by Location.managingOrganization.
Location.telecom:
- cardinality: 0..* instead of 0..1
reason: The cardinality mismatch between the zib (0..1) and FHIR (0..*) is explained by the missing root element of zib part ContactInformation in FHIR. Instead, the two containers of the zib (TelephoneNumbers and EmailAddresses), which both have a cardinality of 0..*, are mapped directly into the resource. Thereby this mapping is still honoring the cardinality requirements of the zib.
Location.telecom*:
- datatype: ContactPoint instead of a reference
reason: ContactInformation in FHIR is represented using the ContactPoint datatype, not as a separate resource. Because the FHIR profile for ContactInformation consists of two parts the root concept of ContactInformation is mapped on .telecom.

unmapped zib concepts:
- NL-CM:17.2.10: HealthcareProvider.LocationNumber
reason: This zib concept is problematic to map cleanly to FHIR and it has been deemed too uncommon in practice to warrant an extension.


---
# The following issues are not "real" deviations stemming from design choices, but rather problems that pop up due to
# shortcomings in tooling, the used terminology server, etc.
# These might occur in one or more profiles, or in none if they have been fixed in the meantime.

issues should occur: false

zib-AddressInformation:
zib deviations:
Address.line.extension:houseNumberIndication.value[x]:
- datatype: string instead of CD
reason: The mapping of zib AddressInformation on the FHIR Address datatype is the result of compatibility with HL7v3, which is the format that a lot of healthcare data in the Netherlands is stored in. As a result of this, the zib concept HouseNumberIndication with CD datatype is mapped to a FHIR string datatype with a constraint added (the value can only be 'by' or 'to' or 'OTH').
Address.line.extension:*.value[x]:
- cardinality: 1..1 instead of 0..1
reason: The value of the extension is required, but the extension itself is optional, making the effective cardinality 0..1 as required by the zib.

zib-HealthcareProvider:
ignored issues:
Location.address:
- message: "Constraint failed: sd-pg-02: 'If mapping.map exists and the mapping is not implicit, short should exist'"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps we can add the short and alias from the NL-CM:17.2.5 concept and remove this?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kept this, otherwise we would have to provide the same alias and short already given by the base profile

reason: The required short description is given by the datatype profile, so it is absent from the differential.
- message: "Constraint failed: sd-pg-04: 'If mapping.map exists and the mapping is not implicit, alias should exist.'"
reason: The required alias is given by the datatype profile, so it is absent from the differential.
36 changes: 36 additions & 0 deletions nl-core/StructureDefinitions/nl-core-AddressInformation.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="nl-core-AddressInformation"/>
<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-AddressInformation"/>
<name value="NlcoreAddressInformation"/>
<title value="nl core AddressInformation"/>
<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="Address information includes data where a person resides (temporarily, permanently) or where a building is located."/>
<purpose value="A derived profile from [zib-AddressInformation](http://nictiz.nl/fhir/StructureDefinition/zib-AddressInformation) 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"/>
<abstract value="false"/>
<type value="Address"/>
<baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-AddressInformation"/>
<derivation value="constraint"/>
<differential>
<element id="Address">
<path value="Address"/>
<alias value="nl-core-AddressInformation"/>
</element>
</differential>
</StructureDefinition>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="nl-core-ContactInformation-EmailAddresses" />
<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-ContactInformation-EmailAddresses" />
<name value="NlcoreContactInformationEmailAddresses" />
<title value="nl core ContactInformation EmailAddresses" />
<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="Contact information includes a person's telephone numbers en e-mail addresses." />
<purpose value="A derived profile from [zib-ContactInformation-EmailAddresses](http://nictiz.nl/fhir/StructureDefinition/zib-ContactInformation-EmailAddresses) 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.&#xD;&#xA;&#xD;&#xA;To implement the entire zib, the complementary profile [nl-core-ContactInformation-TelephoneNumbers](http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-TelephoneNumbers) should be used. Both profiles can be added in a slice with the discriminator set to `profile`/`$this`." />
<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-contactinformation-v1.3.1-2024EN" />
<uri value="https://zibs.nl/wiki/ContactInformation-v1.3.1(2024EN)" />
<name value="zib ContactInformation-v1.3.1(2024EN)" />
</mapping>
<kind value="complex-type" />
<abstract value="false" />
<type value="ContactPoint" />
<baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-ContactInformation-EmailAddresses" />
<derivation value="constraint" />
<differential>
<element id="ContactPoint">
<path value="ContactPoint" />
<alias value="nl-core-ContactInformation-EmailAddresses" />
</element>
</differential>
</StructureDefinition>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="nl-core-ContactInformation-TelephoneNumbers" />
<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-ContactInformation-TelephoneNumbers" />
<name value="NlcoreContactInformationTelephoneNumbers" />
<title value="nl core ContactInformation TelephoneNumbers" />
<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="Contact information includes a person's telephone numbers en e-mail addresses." />
<purpose value="A derived profile from [zib-ContactInformation-TelephoneNumbers](http://nictiz.nl/fhir/StructureDefinition/zib-ContactInformation-TelephoneNumbers) 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.&#xD;&#xA;&#xD;&#xA;To implement the entire zib, the complementary profile [nl-core-ContactInformation-EmailAddresses](http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-EmailAddresses) should be used. Both profiles can be added in a slice with the discriminator set to `profile`/`$this`." />
<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-contactinformation-v1.3.1-2024EN" />
<uri value="https://zibs.nl/wiki/ContactInformation-v1.3.1(2024EN)" />
<name value="zib ContactInformation-v1.3.1(2024EN)" />
</mapping>
<kind value="complex-type" />
<abstract value="false" />
<type value="ContactPoint" />
<baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-ContactInformation-TelephoneNumbers" />
<derivation value="constraint" />
<differential>
<element id="ContactPoint">
<path value="ContactPoint" />
<alias value="nl-core-ContactInformation-TelephoneNumbers" />
</element>
</differential>
</StructureDefinition>
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>

Check warning on line 1 in nl-core/StructureDefinitions/nl-core-HealthcareProvider-Organization.xml

View workflow job for this annotation

GitHub Actions / Strict QA on changed materials

The type of profile http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation cannot be checked as the profile is not known (at StructureDefinition.snapshot.element[28])

Check warning on line 1 in nl-core/StructureDefinitions/nl-core-HealthcareProvider-Organization.xml

View workflow job for this annotation

GitHub Actions / Strict QA on changed materials

Unable to resolve profile http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation (at StructureDefinition.differential.element[6].type[0].profile[0])

Check warning on line 1 in nl-core/StructureDefinitions/nl-core-HealthcareProvider-Organization.xml

View workflow job for this annotation

GitHub Actions / Loose QA on the entire repo

The type of profile http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation cannot be checked as the profile is not known (at StructureDefinition.snapshot.element[28])

Check warning on line 1 in nl-core/StructureDefinitions/nl-core-HealthcareProvider-Organization.xml

View workflow job for this annotation

GitHub Actions / Loose QA on the entire repo

Unable to resolve profile http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation (at StructureDefinition.differential.element[6].type[0].profile[0])
<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="nl-core-HealthcareProvider-Organization" />
<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-HealthcareProvider-Organization" />
<name value="NlcoreHealthcareProviderOrganization" />
<title value="nl core HealthcareProvider Organization" />
<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="A healthcare provider is an organization that offers and provides medical, paramedic and/or nursing care to patients/clients. Examples include: hospitals, nursing homes, doctor’s offices." />
<purpose value="A derived profile from [zib-HealthcareProvider-Organization](http://nictiz.nl/fhir/StructureDefinition/zib-HealthcareProvider-Organization) 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-healthcareprovider-v3.6-2024EN" />
<uri value="https://zibs.nl/wiki/HealthcareProvider-v3.6(2024EN)" />
<name value="zib HealthcareProvider-v3.6(2024EN)" />
</mapping>
<kind value="resource" />
<abstract value="false" />
<type value="Organization" />
<baseDefinition value="http://nictiz.nl/fhir/StructureDefinition/zib-HealthcareProvider-Organization" />
<derivation value="constraint" />
<differential>
<element id="Organization">
<path value="Organization" />
<comment value="The zib HealthcareProvider is mapped to this Organization profile and a profile on Location (&lt;http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider&gt;). The Location profile acts as the focal resource of the HealthcareProvider because most references to this zib are concerned about the recording of the physical location where the care to patient/client takes place rather than the organizational information. Often there's no clear distinction between an organizational structure and a physical location. As a rule of thumb, locations are always used for recording where a service occurs, and hence where encounters and observations take place.&#xD;&#xA;&#xD;&#xA;Healthcare providers usually consist of multiple organizational levels and physical locations. The hierarchical structure may be captured by using multiple instances of this profile, using the `Organization.partOf` element to refer to their parent organization. The physical location is captured using the nl-core-HealthcareProvider profile, which refers this profile at the appropriate level in the hierarchy." />
<alias value="nl-core-HealthcareProvider-Organization" />
</element>
<element id="Organization.telecom">
<path value="Organization.telecom" />
<slicing>
<discriminator>
<type value="profile" />
<path value="$this" />
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Organization.telecom:telephoneNumbers">
<path value="Organization.telecom" />
<sliceName value="telephoneNumbers" />
<type>
<code value="ContactPoint" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-TelephoneNumbers" />
</type>
</element>
<element id="Organization.telecom:emailAddresses">
<path value="Organization.telecom" />
<sliceName value="emailAddresses" />
<type>
<code value="ContactPoint" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-EmailAddresses" />
</type>
</element>
<element id="Organization.address">
<path value="Organization.address" />
<type>
<code value="Address" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-AddressInformation" />
</type>
</element>
<element id="Organization.partOf">
<path value="Organization.partOf" />
<type>
<code value="Reference" />
<targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
<targetProfile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-HealthcareProvider-Organization" />
</type>
</element>
<element id="Organization.contact.name">
<path value="Organization.contact.name" />
<type>
<code value="HumanName" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation" />

Check notice on line 86 in nl-core/StructureDefinitions/nl-core-HealthcareProvider-Organization.xml

View workflow job for this annotation

GitHub Actions / Strict QA on changed materials

Canonical URL 'http://nictiz.nl/fhir/StructureDefinition/nl-core-NameInformation' does not resolve (at StructureDefinition.differential.element[6].type[0].profile[0])
</type>
</element>
<element id="Organization.contact.telecom">
<path value="Organization.contact.telecom" />
<slicing>
<discriminator>
<type value="profile" />
<path value="$this" />
</discriminator>
<rules value="open" />
</slicing>
</element>
<element id="Organization.contact.telecom:telephoneNumbers">
<path value="Organization.contact.telecom" />
<sliceName value="telephoneNumbers" />
<type>
<code value="ContactPoint" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-TelephoneNumbers" />
</type>
</element>
<element id="Organization.contact.telecom:emailAddresses">
<path value="Organization.contact.telecom" />
<sliceName value="emailAddresses" />
<type>
<code value="ContactPoint" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-ContactInformation-EmailAddresses" />
</type>
</element>
<element id="Organization.contact.address">
<path value="Organization.contact.address" />
<type>
<code value="Address" />
<profile value="http://nictiz.nl/fhir/StructureDefinition/nl-core-AddressInformation" />
</type>
</element>
</differential>
</StructureDefinition>
Loading