From 73f52160b9655cf7831fc503455a03569942f970 Mon Sep 17 00:00:00 2001 From: Patrick Werner Date: Mon, 13 Jan 2025 12:23:27 +0100 Subject: [PATCH] feat: added Invariant `CodingSytemCodeInv` throwing a warning if a Coding element is missing system or code. feat: added a data type profile `CodingWithCodeAndSystem` setting .code and .system to a min cardinality of 1. Applied in the derived strict profiles at the same elements as the `CodingSytemCodeInv` invariant. --- changelog.md | 22 ++++ fhirpkg.lock.json | 2 +- src/fhir/fsh-generated/fsh-index.json | 90 +++++++------ src/fhir/fsh-generated/fsh-index.txt | 49 +++---- ...oint-MessengerEndpointWithVisibility.json} | 2 +- ...hcareService-HealthcareServiceExample.json | 8 +- ...Service-NCPeHHealthcareServiceExample.json | 6 + ...vice-PharmacyHealthCareServiceExample.json | 32 +++-- ...Organization-NCPeHOrganizationExample.json | 6 + .../Organization-OrganizationExample.json | 6 + .../Organization-OrganizationExample001.json | 6 + ...anization-PharmacyOrganizationExample.json | 6 + ...Practitioner-TIPractitionerExample001.json | 10 ++ ...titioner-TIPractitionerExampleDentist.json | 6 + ...ctitionerRole-PractitionerRoleExample.json | 2 +- ...ureDefinition-CodingWithCodeAndSystem.json | 30 +++++ ...StructureDefinition-EndpointDirectory.json | 31 +++++ ...tructureDefinition-EndpointVisibility.json | 9 ++ ...Definition-HealthcareServiceDirectory.json | 83 ++++++++++-- ...tion-HealthcareServiceDirectoryStrict.json | 122 +++++++++++++++++- ...StructureDefinition-LocationDirectory.json | 9 ++ ...ctureDefinition-OrganizationDirectory.json | 22 ++++ ...efinition-OrganizationDirectoryStrict.json | 57 +++++++- ...tureDefinition-OrganizationVisibility.json | 9 ++ ...ctureDefinition-PractitionerDirectory.json | 35 +++++ ...efinition-PractitionerDirectoryStrict.json | 47 ++++++- ...eDefinition-PractitionerRoleDirectory.json | 9 ++ ...ition-PractitionerRoleDirectoryStrict.json | 23 +++- ...ctureDefinition-SpecialOpeningTimesEX.json | 9 ++ ...eDefinition-endpoint-directory-Strict.json | 64 ++++++++- .../StructureDefinition-ncpeh-country-ex.json | 9 ++ src/fhir/input/fsh/Invariants.fsh | 9 +- .../PhysicalFeaturesHealthCareServiceCS.fsh | 3 +- src/fhir/input/fsh/examples/Examples001.fsh | 8 +- .../input/fsh/examples/PharmacyExample.fsh | 2 +- src/fhir/input/fsh/profiles/DataType.fsh | 7 + .../input/fsh/profiles/EndpointDirectory.fsh | 7 + src/fhir/input/fsh/profiles/Extension.fsh | 4 + .../profiles/HealthcareServiceDirectory.fsh | 25 +++- .../input/fsh/profiles/LocationDirectory.fsh | 1 + .../fsh/profiles/OrganizationDirectory.fsh | 5 + .../fsh/profiles/PractitionerDirectory.fsh | 11 +- .../profiles/PractitionerRoleDirectory.fsh | 2 + 43 files changed, 795 insertions(+), 110 deletions(-) rename src/fhir/fsh-generated/resources/{Endpoint-EndpointExample.json => Endpoint-MessengerEndpointWithVisibility.json} (96%) create mode 100644 src/fhir/fsh-generated/resources/StructureDefinition-CodingWithCodeAndSystem.json create mode 100644 src/fhir/input/fsh/profiles/DataType.fsh diff --git a/changelog.md b/changelog.md index 8216a612..99d95bee 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,28 @@ # Changelog ## 2025-01-10 Version 0.11.23 +- feat: added Invariant `CodingSytemCodeInv` throwing a warning if a Coding element is missing system or code. Added to: + - EndpointDirectory.meta.tag + - EndpointDirectory.connectionType + - EndpointDirectory.payloadType.coding + - OrganizationVisibility.valueCoding + - EndpointVisibility.valueCoding + - SpecialOpeningTimesEX.extension[qualifier].valueCoding + - NCPeHCountryEx.valueCoding + - HealthcareServiceDirectory.meta.tag + - HealthcareServiceDirectory.category.coding + - HealthcareServiceDirectory.type.coding + - HealthcareServiceDirectory.specialty.coding + - HealthcareServiceDirectory.communication.coding + - HealthcareServiceDirectory.characteristic.coding + - LocationDirectory.meta.tag + - OrganizationDirectory.meta.tag + - OrganizationDirectory.type.coding + - PractitionerDirectory.meta.tag + - PractitionerDirectory.qualification.code.coding + - PractitionerDirectory.communication.coding + - PractitionerRoleDirectory.meta.tag +- feat: added a data type profile `CodingWithCodeAndSystem` setting .code and .system to a min cardinality of 1. Applied in the derived strict profiles at the same elements as the `CodingSytemCodeInv` invariant. - fix: added SearchParameters with Uplifted-Refchains extension for hapi fhir servers (was not included in 0.11.22 due to a technical issue) - fix: added strict profiles: These profiles are derived from the VZD-profiles, are restricted non-MS elements to 0..0, add closed slicing. Purpose technical validation for VZD implementations (was not included in 0.11.22 due to a technical issue) - fix: Extensions: OrganizationVisibility & EndpointVisibility had a required binding on Extension.value[x] which implies a min cardinality of 1. valueCoding is now set to 1.. explicitly. diff --git a/fhirpkg.lock.json b/fhirpkg.lock.json index 46d3ceba..550c5b4e 100644 --- a/fhirpkg.lock.json +++ b/fhirpkg.lock.json @@ -1,5 +1,5 @@ { - "updated": "2025-01-10T16:26:19.960925+01:00", + "updated": "2025-01-13T10:31:27.000688+01:00", "dependencies": { "de.basisprofil.r4": "1.5.1", "hl7.fhir.r4.core": "4.0.1", diff --git a/src/fhir/fsh-generated/fsh-index.json b/src/fhir/fsh-generated/fsh-index.json index a44862db..f1f6886e 100644 --- a/src/fhir/fsh-generated/fsh-index.json +++ b/src/fhir/fsh-generated/fsh-index.json @@ -20,8 +20,8 @@ "fshName": "EndpointVisibilityCS", "fshType": "CodeSystem", "fshFile": "profiles/Extension.fsh", - "startLine": 59, - "endLine": 64 + "startLine": 61, + "endLine": 66 }, { "outputFile": "CodeSystem-HealthcareServiceSpecialtyCS.json", @@ -44,8 +44,8 @@ "fshName": "OpeningTimeQualifierCS", "fshType": "CodeSystem", "fshFile": "profiles/Extension.fsh", - "startLine": 90, - "endLine": 95 + "startLine": 93, + "endLine": 98 }, { "outputFile": "CodeSystem-OrganizationProfessionOID.json", @@ -68,8 +68,8 @@ "fshName": "OrganizationVisibilityCS", "fshType": "CodeSystem", "fshFile": "profiles/Extension.fsh", - "startLine": 34, - "endLine": 39 + "startLine": 35, + "endLine": 40 }, { "outputFile": "CodeSystem-Origin.json", @@ -200,8 +200,8 @@ "endLine": 7 }, { - "outputFile": "Endpoint-EndpointExample.json", - "fshName": "EndpointExample", + "outputFile": "Endpoint-MessengerEndpointWithVisibility.json", + "fshName": "MessengerEndpointWithVisibility", "fshType": "Instance", "fshFile": "examples/Examples001.fsh", "startLine": 1, @@ -447,21 +447,29 @@ "startLine": 99, "endLine": 129 }, + { + "outputFile": "StructureDefinition-CodingWithCodeAndSystem.json", + "fshName": "CodingWithCodeAndSystem", + "fshType": "Profile", + "fshFile": "profiles/DataType.fsh", + "startLine": 1, + "endLine": 7 + }, { "outputFile": "StructureDefinition-EndpointDirectory.json", "fshName": "EndpointDirectory", "fshType": "Profile", "fshFile": "profiles/EndpointDirectory.fsh", "startLine": 1, - "endLine": 24 + "endLine": 27 }, { "outputFile": "StructureDefinition-EndpointVisibility.json", "fshName": "EndpointVisibility", "fshType": "Extension", "fshFile": "profiles/Extension.fsh", - "startLine": 48, - "endLine": 57 + "startLine": 49, + "endLine": 59 }, { "outputFile": "StructureDefinition-HealthcareServiceDirectory.json", @@ -469,15 +477,15 @@ "fshType": "Profile", "fshFile": "profiles/HealthcareServiceDirectory.fsh", "startLine": 1, - "endLine": 67 + "endLine": 73 }, { "outputFile": "StructureDefinition-HealthcareServiceDirectoryStrict.json", "fshName": "HealthcareServiceDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/HealthcareServiceDirectory.fsh", - "startLine": 69, - "endLine": 95 + "startLine": 75, + "endLine": 110 }, { "outputFile": "StructureDefinition-LocationDirectory.json", @@ -485,15 +493,15 @@ "fshType": "Profile", "fshFile": "profiles/LocationDirectory.fsh", "startLine": 1, - "endLine": 33 + "endLine": 34 }, { "outputFile": "StructureDefinition-LocationDirectoryStrict.json", "fshName": "LocationDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/LocationDirectory.fsh", - "startLine": 35, - "endLine": 52 + "startLine": 36, + "endLine": 53 }, { "outputFile": "StructureDefinition-OrganizationDirectory.json", @@ -501,15 +509,15 @@ "fshType": "Profile", "fshFile": "profiles/OrganizationDirectory.fsh", "startLine": 1, - "endLine": 51 + "endLine": 53 }, { "outputFile": "StructureDefinition-OrganizationDirectoryStrict.json", "fshName": "OrganizationDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/OrganizationDirectory.fsh", - "startLine": 53, - "endLine": 65 + "startLine": 55, + "endLine": 70 }, { "outputFile": "StructureDefinition-OrganizationVisibility.json", @@ -517,15 +525,15 @@ "fshType": "Extension", "fshFile": "profiles/Extension.fsh", "startLine": 23, - "endLine": 32 + "endLine": 33 }, { "outputFile": "StructureDefinition-PhysicalFeaturesAdditionalNoteEX.json", "fshName": "PhysicalFeaturesAdditionalNoteEX", "fshType": "Extension", "fshFile": "profiles/Extension.fsh", - "startLine": 104, - "endLine": 111 + "startLine": 107, + "endLine": 114 }, { "outputFile": "StructureDefinition-PractitionerDirectory.json", @@ -533,15 +541,15 @@ "fshType": "Profile", "fshFile": "profiles/PractitionerDirectory.fsh", "startLine": 1, - "endLine": 39 + "endLine": 42 }, { "outputFile": "StructureDefinition-PractitionerDirectoryStrict.json", "fshName": "PractitionerDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/PractitionerDirectory.fsh", - "startLine": 41, - "endLine": 51 + "startLine": 44, + "endLine": 60 }, { "outputFile": "StructureDefinition-PractitionerRoleDirectory.json", @@ -549,15 +557,15 @@ "fshType": "Profile", "fshFile": "profiles/PractitionerRoleDirectory.fsh", "startLine": 1, - "endLine": 17 + "endLine": 18 }, { "outputFile": "StructureDefinition-PractitionerRoleDirectoryStrict.json", "fshName": "PractitionerRoleDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/PractitionerRoleDirectory.fsh", - "startLine": 19, - "endLine": 34 + "startLine": 20, + "endLine": 36 }, { "outputFile": "StructureDefinition-ServiceCoverageArea.json", @@ -580,24 +588,24 @@ "fshName": "SpecialOpeningTimesEX", "fshType": "Extension", "fshFile": "profiles/Extension.fsh", - "startLine": 73, - "endLine": 88 + "startLine": 75, + "endLine": 91 }, { "outputFile": "StructureDefinition-endpoint-directory-Strict.json", "fshName": "EndpointDirectoryStrict", "fshType": "Profile", "fshFile": "profiles/EndpointDirectory.fsh", - "startLine": 26, - "endLine": 38 + "startLine": 29, + "endLine": 45 }, { "outputFile": "StructureDefinition-ncpeh-country-ex.json", "fshName": "NCPeHCountryEx", "fshType": "Extension", "fshFile": "profiles/Extension.fsh", - "startLine": 113, - "endLine": 124 + "startLine": 116, + "endLine": 128 }, { "outputFile": "ValueSet-AddressStateVS.json", @@ -628,8 +636,8 @@ "fshName": "EndpointVisibilityVS", "fshType": "ValueSet", "fshFile": "profiles/Extension.fsh", - "startLine": 66, - "endLine": 71 + "startLine": 68, + "endLine": 73 }, { "outputFile": "ValueSet-HealthcareServiceTypeVS.json", @@ -652,8 +660,8 @@ "fshName": "OpeningTimeQualifierVS", "fshType": "ValueSet", "fshFile": "profiles/Extension.fsh", - "startLine": 97, - "endLine": 102 + "startLine": 100, + "endLine": 105 }, { "outputFile": "ValueSet-OrganizationProfessionOIDTypeVS.json", @@ -676,8 +684,8 @@ "fshName": "OrganizationVisibilityVS", "fshType": "ValueSet", "fshFile": "profiles/Extension.fsh", - "startLine": 41, - "endLine": 46 + "startLine": 42, + "endLine": 47 }, { "outputFile": "ValueSet-OriginVS.json", diff --git a/src/fhir/fsh-generated/fsh-index.txt b/src/fhir/fsh-generated/fsh-index.txt index c0791ad5..abe09fca 100644 --- a/src/fhir/fsh-generated/fsh-index.txt +++ b/src/fhir/fsh-generated/fsh-index.txt @@ -1,13 +1,13 @@ Output File Name Type FSH File Lines CodeSystem-EndpointDirectoryConnectionType.json EndpointDirectoryConnectionType CodeSystem codesystems/EndpointDirectoryConnectionType.fsh 1 - 22 CodeSystem-EndpointDirectoryPayloadType.json EndpointDirectoryPayloadType CodeSystem codesystems/EndpointDirectoryPayloadType.fsh 1 - 12 -CodeSystem-EndpointVisibilityCS.json EndpointVisibilityCS CodeSystem profiles/Extension.fsh 59 - 64 +CodeSystem-EndpointVisibilityCS.json EndpointVisibilityCS CodeSystem profiles/Extension.fsh 61 - 66 CodeSystem-HealthcareServiceSpecialtyCS.json HealthcareServiceSpecialtyCS CodeSystem codesystems/HealthcareServiceSpecialtyCS.fsh 1 - 11 CodeSystem-HolderCS.json HolderCS CodeSystem codesystems/HolderCS.fsh 1 - 125 -CodeSystem-OpeningTimeQualifierCS.json OpeningTimeQualifierCS CodeSystem profiles/Extension.fsh 90 - 95 +CodeSystem-OpeningTimeQualifierCS.json OpeningTimeQualifierCS CodeSystem profiles/Extension.fsh 93 - 98 CodeSystem-OrganizationProfessionOID.json OrganizationProfessionOID CodeSystem codesystems/OrganizationProfessionOID.fsh 1 - 70 CodeSystem-OrganizationProviderType.json OrganizationProviderType CodeSystem codesystems/OrganizationProviderType.fsh 1 - 11 -CodeSystem-OrganizationVisibilityCS.json OrganizationVisibilityCS CodeSystem profiles/Extension.fsh 34 - 39 +CodeSystem-OrganizationVisibilityCS.json OrganizationVisibilityCS CodeSystem profiles/Extension.fsh 35 - 40 CodeSystem-Origin.json Origin CodeSystem codesystems/Origin.fsh 1 - 8 CodeSystem-PharmacyHealthcareSpecialtyCS.json PharmacyHealthcareSpecialtyCS CodeSystem codesystems/PharmacyHealthcareServiceSpecialtyCS.fsh 1 - 12 CodeSystem-PharmacyTypeCS.json PharmacyTypeCS CodeSystem codesystems/PharmacyTypeCS.fsh 1 - 13 @@ -24,7 +24,7 @@ CodeSystem-physicalFeatures.json PhysicalFeatu CodeSystem-qualifikationen-nicht-aerztlicher-autoren-oid-url.json QualifikationenNichtAerztlicherAutoren_OID_URL CodeSystem codesystems/external/QualifikationenNichtAerztlicherAutoren.fsh 1 - 183 CodeSystem-qualifikatoren-zahnaerztlicher-autoren-oid-url.json QualifikatorenZahnaerztlicherAutoren_OID_URL CodeSystem codesystems/external/QualifikatorenZahnaerztlicherAutoren.fsh 1 - 11 CodeSystem-zahnaerztliche-fachrichtungen-oid-url.json ZahnaerztlicheFachrichtungen_OID_URL CodeSystem codesystems/external/ZahnAerztlicheFachrichtungen.fsh 1 - 7 -Endpoint-EndpointExample.json EndpointExample Instance examples/Examples001.fsh 1 - 11 +Endpoint-MessengerEndpointWithVisibility.json MessengerEndpointWithVisibility Instance examples/Examples001.fsh 1 - 11 Endpoint-OrganizationExample001-Endpoint-TIM.json OrganizationExample001-Endpoint-TIM Instance examples/OrganizationExample001.fsh 1 - 12 Endpoint-PharmacyEndpointErpReservationExample.json PharmacyEndpointErpReservationExample Instance examples/PharmacyExample.fsh 123 - 132 Endpoint-PharmacyEndpointOnlineAppointmentBookingExample.json PharmacyEndpointOnlineAppointmentBookingExample Instance examples/PharmacyExample.fsh 134 - 143 @@ -55,35 +55,36 @@ SearchParameter-PractitionerQualificationSP.json PractitionerQ SearchParameter-PractitionerRole-endpoint.json PractitionerRole-endpoint Instance upliftedRefChains.fsh 161 - 190 SearchParameter-PractitionerRole-location.json PractitionerRole-location Instance upliftedRefChains.fsh 131 - 159 SearchParameter-PractitionerRole-practitioner.json PractitionerRole-practitioner Instance upliftedRefChains.fsh 99 - 129 -StructureDefinition-EndpointDirectory.json EndpointDirectory Profile profiles/EndpointDirectory.fsh 1 - 24 -StructureDefinition-EndpointVisibility.json EndpointVisibility Extension profiles/Extension.fsh 48 - 57 -StructureDefinition-HealthcareServiceDirectory.json HealthcareServiceDirectory Profile profiles/HealthcareServiceDirectory.fsh 1 - 67 -StructureDefinition-HealthcareServiceDirectoryStrict.json HealthcareServiceDirectoryStrict Profile profiles/HealthcareServiceDirectory.fsh 69 - 95 -StructureDefinition-LocationDirectory.json LocationDirectory Profile profiles/LocationDirectory.fsh 1 - 33 -StructureDefinition-LocationDirectoryStrict.json LocationDirectoryStrict Profile profiles/LocationDirectory.fsh 35 - 52 -StructureDefinition-OrganizationDirectory.json OrganizationDirectory Profile profiles/OrganizationDirectory.fsh 1 - 51 -StructureDefinition-OrganizationDirectoryStrict.json OrganizationDirectoryStrict Profile profiles/OrganizationDirectory.fsh 53 - 65 -StructureDefinition-OrganizationVisibility.json OrganizationVisibility Extension profiles/Extension.fsh 23 - 32 -StructureDefinition-PhysicalFeaturesAdditionalNoteEX.json PhysicalFeaturesAdditionalNoteEX Extension profiles/Extension.fsh 104 - 111 -StructureDefinition-PractitionerDirectory.json PractitionerDirectory Profile profiles/PractitionerDirectory.fsh 1 - 39 -StructureDefinition-PractitionerDirectoryStrict.json PractitionerDirectoryStrict Profile profiles/PractitionerDirectory.fsh 41 - 51 -StructureDefinition-PractitionerRoleDirectory.json PractitionerRoleDirectory Profile profiles/PractitionerRoleDirectory.fsh 1 - 17 -StructureDefinition-PractitionerRoleDirectoryStrict.json PractitionerRoleDirectoryStrict Profile profiles/PractitionerRoleDirectory.fsh 19 - 34 +StructureDefinition-CodingWithCodeAndSystem.json CodingWithCodeAndSystem Profile profiles/DataType.fsh 1 - 7 +StructureDefinition-EndpointDirectory.json EndpointDirectory Profile profiles/EndpointDirectory.fsh 1 - 27 +StructureDefinition-EndpointVisibility.json EndpointVisibility Extension profiles/Extension.fsh 49 - 59 +StructureDefinition-HealthcareServiceDirectory.json HealthcareServiceDirectory Profile profiles/HealthcareServiceDirectory.fsh 1 - 73 +StructureDefinition-HealthcareServiceDirectoryStrict.json HealthcareServiceDirectoryStrict Profile profiles/HealthcareServiceDirectory.fsh 75 - 110 +StructureDefinition-LocationDirectory.json LocationDirectory Profile profiles/LocationDirectory.fsh 1 - 34 +StructureDefinition-LocationDirectoryStrict.json LocationDirectoryStrict Profile profiles/LocationDirectory.fsh 36 - 53 +StructureDefinition-OrganizationDirectory.json OrganizationDirectory Profile profiles/OrganizationDirectory.fsh 1 - 53 +StructureDefinition-OrganizationDirectoryStrict.json OrganizationDirectoryStrict Profile profiles/OrganizationDirectory.fsh 55 - 70 +StructureDefinition-OrganizationVisibility.json OrganizationVisibility Extension profiles/Extension.fsh 23 - 33 +StructureDefinition-PhysicalFeaturesAdditionalNoteEX.json PhysicalFeaturesAdditionalNoteEX Extension profiles/Extension.fsh 107 - 114 +StructureDefinition-PractitionerDirectory.json PractitionerDirectory Profile profiles/PractitionerDirectory.fsh 1 - 42 +StructureDefinition-PractitionerDirectoryStrict.json PractitionerDirectoryStrict Profile profiles/PractitionerDirectory.fsh 44 - 60 +StructureDefinition-PractitionerRoleDirectory.json PractitionerRoleDirectory Profile profiles/PractitionerRoleDirectory.fsh 1 - 18 +StructureDefinition-PractitionerRoleDirectoryStrict.json PractitionerRoleDirectoryStrict Profile profiles/PractitionerRoleDirectory.fsh 20 - 36 StructureDefinition-ServiceCoverageArea.json ServiceCoverageArea Extension profiles/Extension.fsh 1 - 12 StructureDefinition-ServiceCoveragePostalCode.json ServiceCoveragePostalCode Extension profiles/Extension.fsh 14 - 21 -StructureDefinition-SpecialOpeningTimesEX.json SpecialOpeningTimesEX Extension profiles/Extension.fsh 73 - 88 -StructureDefinition-endpoint-directory-Strict.json EndpointDirectoryStrict Profile profiles/EndpointDirectory.fsh 26 - 38 -StructureDefinition-ncpeh-country-ex.json NCPeHCountryEx Extension profiles/Extension.fsh 113 - 124 +StructureDefinition-SpecialOpeningTimesEX.json SpecialOpeningTimesEX Extension profiles/Extension.fsh 75 - 91 +StructureDefinition-endpoint-directory-Strict.json EndpointDirectoryStrict Profile profiles/EndpointDirectory.fsh 29 - 45 +StructureDefinition-ncpeh-country-ex.json NCPeHCountryEx Extension profiles/Extension.fsh 116 - 128 ValueSet-AddressStateVS.json AddressStateVS ValueSet valuesets/AddressStateVS.fsh 1 - 4 ValueSet-EndpointConnectionTypeVS.json EndpointConnectionTypeVS ValueSet valuesets/EndpointConnectionTypeVS.fsh 1 - 5 ValueSet-EndpointPayloadTypeVS.json EndpointPayloadTypeVS ValueSet valuesets/EndpointPayloadTypeVS.fsh 1 - 5 -ValueSet-EndpointVisibilityVS.json EndpointVisibilityVS ValueSet profiles/Extension.fsh 66 - 71 +ValueSet-EndpointVisibilityVS.json EndpointVisibilityVS ValueSet profiles/Extension.fsh 68 - 73 ValueSet-HealthcareServiceTypeVS.json HealthcareServiceTypeVS ValueSet valuesets/HealthcareServiceTypeVS.fsh 1 - 7 ValueSet-HealthcareSpecialtyTypeVS.json HealthcareServiceSpecialtyVS ValueSet valuesets/HealthcareServiceSpecialtyVS.fsh 1 - 8 -ValueSet-OpeningTimeQualifierVS.json OpeningTimeQualifierVS ValueSet profiles/Extension.fsh 97 - 102 +ValueSet-OpeningTimeQualifierVS.json OpeningTimeQualifierVS ValueSet profiles/Extension.fsh 100 - 105 ValueSet-OrganizationProfessionOIDTypeVS.json OrganizationProfessionOIDTypeVS ValueSet valuesets/OrganizationProfessionOIDTypeVS.fsh 1 - 4 ValueSet-OrganizationTypeVS.json OrganizationTypeVS ValueSet valuesets/OrganizationTypeVS.fsh 1 - 4 -ValueSet-OrganizationVisibilityVS.json OrganizationVisibilityVS ValueSet profiles/Extension.fsh 41 - 46 +ValueSet-OrganizationVisibilityVS.json OrganizationVisibilityVS ValueSet profiles/Extension.fsh 42 - 47 ValueSet-OriginVS.json OriginVS ValueSet valuesets/OriginVS.fsh 1 - 4 ValueSet-PhysicalFeaturesHealthCareServiceVS.json PhysicalFeaturesHealthCareServiceVS ValueSet valuesets/PhysicalFeaturesHealthCareServiceVS.fsh 1 - 4 ValueSet-PractitionerQualificationVS.json PractitionerQualificationVS ValueSet valuesets/PractitionerQualificationVS.fsh 1 - 9 diff --git a/src/fhir/fsh-generated/resources/Endpoint-EndpointExample.json b/src/fhir/fsh-generated/resources/Endpoint-MessengerEndpointWithVisibility.json similarity index 96% rename from src/fhir/fsh-generated/resources/Endpoint-EndpointExample.json rename to src/fhir/fsh-generated/resources/Endpoint-MessengerEndpointWithVisibility.json index f57a7f51..847abdc5 100644 --- a/src/fhir/fsh-generated/resources/Endpoint-EndpointExample.json +++ b/src/fhir/fsh-generated/resources/Endpoint-MessengerEndpointWithVisibility.json @@ -1,6 +1,6 @@ { "resourceType": "Endpoint", - "id": "EndpointExample", + "id": "MessengerEndpointWithVisibility", "meta": { "tag": [ { diff --git a/src/fhir/fsh-generated/resources/HealthcareService-HealthcareServiceExample.json b/src/fhir/fsh-generated/resources/HealthcareService-HealthcareServiceExample.json index c92d76e9..ffb6dfa7 100644 --- a/src/fhir/fsh-generated/resources/HealthcareService-HealthcareServiceExample.json +++ b/src/fhir/fsh-generated/resources/HealthcareService-HealthcareServiceExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "2-2.58.00000040" + } + ], "providedBy": { "reference": "Organization/OrganizationExample" }, @@ -120,7 +126,7 @@ "availabilityExceptions": "An Feiertagen geschlossen", "endpoint": [ { - "reference": "Endpoint/EndpointExample" + "reference": "Endpoint/MessengerEndpointWithVisibility" } ], "characteristic": [ diff --git a/src/fhir/fsh-generated/resources/HealthcareService-NCPeHHealthcareServiceExample.json b/src/fhir/fsh-generated/resources/HealthcareService-NCPeHHealthcareServiceExample.json index 4bb48694..0bb61111 100644 --- a/src/fhir/fsh-generated/resources/HealthcareService-NCPeHHealthcareServiceExample.json +++ b/src/fhir/fsh-generated/resources/HealthcareService-NCPeHHealthcareServiceExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "2-2.58.00000041" + } + ], "providedBy": { "reference": "Organization/NCPeHOrganizationExample" }, diff --git a/src/fhir/fsh-generated/resources/HealthcareService-PharmacyHealthCareServiceExample.json b/src/fhir/fsh-generated/resources/HealthcareService-PharmacyHealthCareServiceExample.json index 825b1aa5..0067bf99 100644 --- a/src/fhir/fsh-generated/resources/HealthcareService-PharmacyHealthCareServiceExample.json +++ b/src/fhir/fsh-generated/resources/HealthcareService-PharmacyHealthCareServiceExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "3-07.2.1444560000.16.108" + } + ], "availableTime": [ { "daysOfWeek": [ @@ -75,26 +81,17 @@ ], "characteristic": [ { - "coding": [ - { - "system": "https://gematik.de/fhir/directory/CodeSystem/physicalFeatures", - "code": "oepnv", - "display": "ÖPNV in der Nähe" - } - ], "extension": [ { "url": "https://gematik.de/fhir/directory/StructureDefinition/PhysicalFeaturesAdditionalNoteEX", "valueString": "Vor dem Haus" } - ] - }, - { + ], "coding": [ { + "code": "parkmoeglichkeit", "system": "https://gematik.de/fhir/directory/CodeSystem/physicalFeatures", - "code": "oepnv", - "display": "ÖPNV in der Nähe" + "display": "Parkmöglichkeit" } ] }, @@ -124,6 +121,15 @@ "display": "Terminbuchung" } ] + }, + { + "coding": [ + { + "code": "oepnv", + "system": "https://gematik.de/fhir/directory/CodeSystem/physicalFeatures", + "display": "ÖPNV in der Nähe" + } + ] } ], "coverageArea": [ @@ -243,7 +249,7 @@ "availabilityExceptions": "An Feiertagen geschlossen", "endpoint": [ { - "reference": "Endpoint/EndpointExample" + "reference": "Endpoint/MessengerEndpointWithVisibility" } ] } diff --git a/src/fhir/fsh-generated/resources/Organization-NCPeHOrganizationExample.json b/src/fhir/fsh-generated/resources/Organization-NCPeHOrganizationExample.json index 493f62d5..5d81a685 100644 --- a/src/fhir/fsh-generated/resources/Organization-NCPeHOrganizationExample.json +++ b/src/fhir/fsh-generated/resources/Organization-NCPeHOrganizationExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "2-2.58.00000041" + } + ], "extension": [ { "url": "https://gematik.de/fhir/directory/StructureDefinition/ncpeh-country-ex", diff --git a/src/fhir/fsh-generated/resources/Organization-OrganizationExample.json b/src/fhir/fsh-generated/resources/Organization-OrganizationExample.json index e39885e4..dd179691 100644 --- a/src/fhir/fsh-generated/resources/Organization-OrganizationExample.json +++ b/src/fhir/fsh-generated/resources/Organization-OrganizationExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "2-2.58.00000040" + } + ], "type": [ { "coding": [ diff --git a/src/fhir/fsh-generated/resources/Organization-OrganizationExample001.json b/src/fhir/fsh-generated/resources/Organization-OrganizationExample001.json index bab8f2e4..efaf0b57 100644 --- a/src/fhir/fsh-generated/resources/Organization-OrganizationExample001.json +++ b/src/fhir/fsh-generated/resources/Organization-OrganizationExample001.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "9-2.58.00000040" + } + ], "extension": [ { "url": "https://gematik.de/fhir/directory/StructureDefinition/OrganizationVisibility", diff --git a/src/fhir/fsh-generated/resources/Organization-PharmacyOrganizationExample.json b/src/fhir/fsh-generated/resources/Organization-PharmacyOrganizationExample.json index 3cf08c3a..c43b30c6 100644 --- a/src/fhir/fsh-generated/resources/Organization-PharmacyOrganizationExample.json +++ b/src/fhir/fsh-generated/resources/Organization-PharmacyOrganizationExample.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "3-07.2.1444560000.16.108" + } + ], "type": [ { "coding": [ diff --git a/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExample001.json b/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExample001.json index 0e6aa340..cd2db220 100644 --- a/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExample001.json +++ b/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExample001.json @@ -12,6 +12,16 @@ "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "1-1.58.00000040" + }, + { + "system": "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR", + "value": "123456789" + } + ], "qualification": [ { "code": { diff --git a/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExampleDentist.json b/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExampleDentist.json index b3578ab0..cfbcda7e 100644 --- a/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExampleDentist.json +++ b/src/fhir/fsh-generated/resources/Practitioner-TIPractitionerExampleDentist.json @@ -12,6 +12,12 @@ "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectoryStrict" ] }, + "identifier": [ + { + "system": "https://gematik.de/fhir/sid/telematik-id", + "value": "2-2.58.00000040" + } + ], "qualification": [ { "code": { diff --git a/src/fhir/fsh-generated/resources/PractitionerRole-PractitionerRoleExample.json b/src/fhir/fsh-generated/resources/PractitionerRole-PractitionerRoleExample.json index 6e026f49..a12dbbb6 100644 --- a/src/fhir/fsh-generated/resources/PractitionerRole-PractitionerRoleExample.json +++ b/src/fhir/fsh-generated/resources/PractitionerRole-PractitionerRoleExample.json @@ -22,7 +22,7 @@ ], "endpoint": [ { - "reference": "Endpoint/EndpointExample" + "reference": "Endpoint/MessengerEndpointWithVisibility" } ] } diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-CodingWithCodeAndSystem.json b/src/fhir/fsh-generated/resources/StructureDefinition-CodingWithCodeAndSystem.json new file mode 100644 index 00000000..a9a381b1 --- /dev/null +++ b/src/fhir/fsh-generated/resources/StructureDefinition-CodingWithCodeAndSystem.json @@ -0,0 +1,30 @@ +{ + "resourceType": "StructureDefinition", + "id": "CodingWithCodeAndSystem", + "url": "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem", + "version": "0.11.23", + "name": "CodingWithCodeAndSystem", + "title": "Coding with code and system", + "status": "draft", + "description": "Coding profile making code and system mandatory", + "fhirVersion": "4.0.1", + "kind": "complex-type", + "abstract": false, + "type": "Coding", + "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Coding", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Coding.system", + "path": "Coding.system", + "min": 1 + }, + { + "id": "Coding.code", + "path": "Coding.code", + "min": 1 + } + ] + } +} diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-EndpointDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-EndpointDirectory.json index b2dc6bfa..766a9d9b 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-EndpointDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-EndpointDirectory.json @@ -36,6 +36,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/EndpointDirectory" + } + ], "mustSupport": true }, { @@ -80,6 +89,15 @@ { "id": "Endpoint.connectionType", "path": "Endpoint.connectionType", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/EndpointDirectory" + } + ], "mustSupport": true }, { @@ -111,6 +129,19 @@ "valueSet": "https://gematik.de/fhir/directory/ValueSet/EndpointPayloadTypeVS" } }, + { + "id": "Endpoint.payloadType.coding", + "path": "Endpoint.payloadType.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/EndpointDirectory" + } + ] + }, { "id": "Endpoint.address", "path": "Endpoint.address", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-EndpointVisibility.json b/src/fhir/fsh-generated/resources/StructureDefinition-EndpointVisibility.json index 8fcaa0b0..aa20e20a 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-EndpointVisibility.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-EndpointVisibility.json @@ -49,6 +49,15 @@ "code": "Coding" } ], + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/EndpointVisibility" + } + ], "mustSupport": true, "binding": { "strength": "required", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectory.json index a0dc6588..8e1def09 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectory.json @@ -36,6 +36,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ], "mustSupport": true }, { @@ -101,6 +110,19 @@ "valueSet": "https://gematik.de/fhir/directory/ValueSet/healthcare-service-category-codes" } }, + { + "id": "HealthcareService.category.coding", + "path": "HealthcareService.category.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ] + }, { "id": "HealthcareService.type", "path": "HealthcareService.type", @@ -110,6 +132,19 @@ "valueSet": "https://gematik.de/fhir/directory/ValueSet/HealthcareServiceTypeVS" } }, + { + "id": "HealthcareService.type.coding", + "path": "HealthcareService.type.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ] + }, { "id": "HealthcareService.specialty", "path": "HealthcareService.specialty", @@ -119,6 +154,19 @@ "valueSet": "https://gematik.de/fhir/directory/ValueSet/HealthcareSpecialtyTypeVS" } }, + { + "id": "HealthcareService.specialty.coding", + "path": "HealthcareService.specialty.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ] + }, { "id": "HealthcareService.location", "path": "HealthcareService.location", @@ -207,6 +255,19 @@ "short": "Physical Features & Technical Services", "mustSupport": true }, + { + "id": "HealthcareService.characteristic.coding", + "path": "HealthcareService.characteristic.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ] + }, { "id": "HealthcareService.characteristic:technicalCharacteristic", "path": "HealthcareService.characteristic", @@ -227,13 +288,6 @@ "short": "Physical Features", "min": 0, "max": "*", - "patternCodeableConcept": { - "coding": [ - { - "system": "https://gematik.de/fhir/directory/CodeSystem/physicalFeatures" - } - ] - }, "mustSupport": true, "binding": { "strength": "required", @@ -261,6 +315,19 @@ "path": "HealthcareService.communication", "mustSupport": true }, + { + "id": "HealthcareService.communication.coding", + "path": "HealthcareService.communication.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/HealthcareServiceDirectory" + } + ] + }, { "id": "HealthcareService.appointmentRequired", "path": "HealthcareService.appointmentRequired", @@ -271,7 +338,7 @@ "path": "HealthcareService.availableTime", "constraint": [ { - "key": "VZD-Service-Opening-Time", + "key": "VZD-Service-Opening-TimeInv", "severity": "error", "human": "Only allows either specialOpeningTimes extension or daysOfWeek, availableStartTime, availableEndTime", "expression": "extension('https://gematik.de/fhir/directory/StructureDefinition/SpecialOpeningTimesEX').exists() xor (daysOfWeek.exists() and availableStartTime.exists() and availableEndTime.exists())", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectoryStrict.json b/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectoryStrict.json index 83b87fa5..1dedeee2 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectoryStrict.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-HealthcareServiceDirectoryStrict.json @@ -26,7 +26,28 @@ } ], "rules": "closed" - } + }, + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "HealthcareService.meta.tag:Origin", + "path": "HealthcareService.meta.tag", + "sliceName": "Origin", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] }, { "id": "HealthcareService.identifier", @@ -46,6 +67,42 @@ "path": "HealthcareService.active", "max": "0" }, + { + "id": "HealthcareService.category.coding", + "path": "HealthcareService.category.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "HealthcareService.type.coding", + "path": "HealthcareService.type.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "HealthcareService.specialty.coding", + "path": "HealthcareService.specialty.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, { "id": "HealthcareService.comment", "path": "HealthcareService.comment", @@ -119,10 +176,73 @@ "rules": "closed" } }, + { + "id": "HealthcareService.characteristic.coding", + "path": "HealthcareService.characteristic.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "HealthcareService.characteristic:physicalFeatures", + "path": "HealthcareService.characteristic", + "sliceName": "physicalFeatures" + }, + { + "id": "HealthcareService.characteristic:physicalFeatures.coding", + "path": "HealthcareService.characteristic.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "HealthcareService.communication.coding", + "path": "HealthcareService.communication.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, { "id": "HealthcareService.referralMethod", "path": "HealthcareService.referralMethod", "max": "0" + }, + { + "id": "HealthcareService.availableTime.extension:specialOpeningTimes", + "path": "HealthcareService.availableTime.extension", + "sliceName": "specialOpeningTimes" + }, + { + "id": "HealthcareService.availableTime.extension:specialOpeningTimes.extension:qualifier", + "path": "HealthcareService.availableTime.extension.extension", + "sliceName": "qualifier" + }, + { + "id": "HealthcareService.availableTime.extension:specialOpeningTimes.extension:qualifier.value[x]", + "path": "HealthcareService.availableTime.extension.extension.value[x]", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] } ] } diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-LocationDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-LocationDirectory.json index 55595184..ea3ff83c 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-LocationDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-LocationDirectory.json @@ -36,6 +36,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/LocationDirectory" + } + ], "mustSupport": true }, { diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectory.json index 2e883765..e4d145ae 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectory.json @@ -36,6 +36,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectory" + } + ], "mustSupport": true }, { @@ -187,6 +196,19 @@ "min": 1, "mustSupport": true }, + { + "id": "Organization.type.coding", + "path": "Organization.type.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/OrganizationDirectory" + } + ] + }, { "id": "Organization.type:providerType", "path": "Organization.type", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectoryStrict.json b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectoryStrict.json index faac1c5c..c58e95e5 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectoryStrict.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationDirectoryStrict.json @@ -26,7 +26,62 @@ } ], "rules": "closed" - } + }, + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Organization.meta.tag:Origin", + "path": "Organization.meta.tag", + "sliceName": "Origin", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Organization.extension:organizationVisibility", + "path": "Organization.extension", + "sliceName": "organizationVisibility" + }, + { + "id": "Organization.extension:organizationVisibility.value[x]", + "path": "Organization.extension.value[x]", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Organization.extension:ncpehCountryEx", + "path": "Organization.extension", + "sliceName": "ncpehCountryEx" + }, + { + "id": "Organization.extension:ncpehCountryEx.value[x]", + "path": "Organization.extension.value[x]", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] }, { "id": "Organization.identifier", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationVisibility.json b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationVisibility.json index 68bb39c7..5f42161c 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationVisibility.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-OrganizationVisibility.json @@ -49,6 +49,15 @@ "code": "Coding" } ], + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/OrganizationVisibility" + } + ], "mustSupport": true, "binding": { "strength": "required", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectory.json index 0835c13c..2ee79b69 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectory.json @@ -35,6 +35,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectory" + } + ], "mustSupport": true }, { @@ -202,10 +211,36 @@ "valueSet": "https://gematik.de/fhir/directory/ValueSet/PractitionerQualificationVS" } }, + { + "id": "Practitioner.qualification.code.coding", + "path": "Practitioner.qualification.code.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectory" + } + ] + }, { "id": "Practitioner.communication", "path": "Practitioner.communication", "mustSupport": true + }, + { + "id": "Practitioner.communication.coding", + "path": "Practitioner.communication.coding", + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/PractitionerDirectory" + } + ] } ] } diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectoryStrict.json b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectoryStrict.json index 15a6fc01..d67d9366 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectoryStrict.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerDirectoryStrict.json @@ -26,7 +26,28 @@ } ], "rules": "closed" - } + }, + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Practitioner.meta.tag:Origin", + "path": "Practitioner.meta.tag", + "sliceName": "Origin", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] }, { "id": "Practitioner.identifier", @@ -50,6 +71,30 @@ "id": "Practitioner.address", "path": "Practitioner.address", "max": "0" + }, + { + "id": "Practitioner.qualification.code.coding", + "path": "Practitioner.qualification.code.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Practitioner.communication.coding", + "path": "Practitioner.communication.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] } ] } diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectory.json b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectory.json index cb15a4b3..3197fa3d 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectory.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectory.json @@ -35,6 +35,15 @@ "rules": "open" }, "min": 1, + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/PractitionerRoleDirectory" + } + ], "mustSupport": true }, { diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectoryStrict.json b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectoryStrict.json index 9d7e09b3..09d07c05 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectoryStrict.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-PractitionerRoleDirectoryStrict.json @@ -26,7 +26,28 @@ } ], "rules": "closed" - } + }, + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "PractitionerRole.meta.tag:Origin", + "path": "PractitionerRole.meta.tag", + "sliceName": "Origin", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] }, { "id": "PractitionerRole.identifier", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-SpecialOpeningTimesEX.json b/src/fhir/fsh-generated/resources/StructureDefinition-SpecialOpeningTimesEX.json index b2c6a6de..e519020c 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-SpecialOpeningTimesEX.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-SpecialOpeningTimesEX.json @@ -91,6 +91,15 @@ "code": "Coding" } ], + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/SpecialOpeningTimesEX" + } + ], "mustSupport": true, "binding": { "strength": "required", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-endpoint-directory-Strict.json b/src/fhir/fsh-generated/resources/StructureDefinition-endpoint-directory-Strict.json index 6e6b6c74..31147e58 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-endpoint-directory-Strict.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-endpoint-directory-Strict.json @@ -26,13 +26,63 @@ } ], "rules": "closed" - } + }, + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Endpoint.meta.tag:Origin", + "path": "Endpoint.meta.tag", + "sliceName": "Origin", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, + { + "id": "Endpoint.extension:endpointVisibility", + "path": "Endpoint.extension", + "sliceName": "endpointVisibility" + }, + { + "id": "Endpoint.extension:endpointVisibility.value[x]", + "path": "Endpoint.extension.value[x]", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] }, { "id": "Endpoint.identifier", "path": "Endpoint.identifier", "max": "0" }, + { + "id": "Endpoint.connectionType", + "path": "Endpoint.connectionType", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, { "id": "Endpoint.managingOrganization", "path": "Endpoint.managingOrganization", @@ -48,6 +98,18 @@ "path": "Endpoint.period", "max": "0" }, + { + "id": "Endpoint.payloadType.coding", + "path": "Endpoint.payloadType.coding", + "type": [ + { + "code": "Coding", + "profile": [ + "https://gematik.de/fhir/directory/StructureDefinition/CodingWithCodeAndSystem" + ] + } + ] + }, { "id": "Endpoint.payloadMimeType", "path": "Endpoint.payloadMimeType", diff --git a/src/fhir/fsh-generated/resources/StructureDefinition-ncpeh-country-ex.json b/src/fhir/fsh-generated/resources/StructureDefinition-ncpeh-country-ex.json index 510c5dd3..0eddb2bc 100644 --- a/src/fhir/fsh-generated/resources/StructureDefinition-ncpeh-country-ex.json +++ b/src/fhir/fsh-generated/resources/StructureDefinition-ncpeh-country-ex.json @@ -49,6 +49,15 @@ "code": "Coding" } ], + "constraint": [ + { + "key": "CodingSytemCodeInv", + "severity": "warning", + "human": "System and Code SHOULD be present", + "expression": "system.exists() and code.exists()", + "source": "https://gematik.de/fhir/directory/StructureDefinition/ncpeh-country-ex" + } + ], "mustSupport": true, "binding": { "strength": "required", diff --git a/src/fhir/input/fsh/Invariants.fsh b/src/fhir/input/fsh/Invariants.fsh index c40455f3..215076e4 100644 --- a/src/fhir/input/fsh/Invariants.fsh +++ b/src/fhir/input/fsh/Invariants.fsh @@ -1,4 +1,9 @@ -Invariant: VZD-Service-Opening-Time +Invariant: VZD-Service-Opening-TimeInv Description: "Only allows either specialOpeningTimes extension or daysOfWeek, availableStartTime, availableEndTime" Expression: "extension('https://gematik.de/fhir/directory/StructureDefinition/SpecialOpeningTimesEX').exists() xor (daysOfWeek.exists() and availableStartTime.exists() and availableEndTime.exists())" -Severity: #error \ No newline at end of file +Severity: #error + +Invariant: CodingSytemCodeInv +Description: "System and Code SHOULD be present" +Expression: "system.exists() and code.exists()" +Severity: #warning \ No newline at end of file diff --git a/src/fhir/input/fsh/codesystems/PhysicalFeaturesHealthCareServiceCS.fsh b/src/fhir/input/fsh/codesystems/PhysicalFeaturesHealthCareServiceCS.fsh index 9fcb5d05..7edd167a 100644 --- a/src/fhir/input/fsh/codesystems/PhysicalFeaturesHealthCareServiceCS.fsh +++ b/src/fhir/input/fsh/codesystems/PhysicalFeaturesHealthCareServiceCS.fsh @@ -5,5 +5,4 @@ Description: "CodeSystem of defined physical features" * #parkmoeglichkeit "Parkmöglichkeit" * #oepnv "ÖPNV in der Nähe" * #barrierefrei "Barrierefrei" -* #abholautomat "Abholautomat" - +* #abholautomat "Abholautomat" \ No newline at end of file diff --git a/src/fhir/input/fsh/examples/Examples001.fsh b/src/fhir/input/fsh/examples/Examples001.fsh index 9bb0e681..c61f3dfc 100644 --- a/src/fhir/input/fsh/examples/Examples001.fsh +++ b/src/fhir/input/fsh/examples/Examples001.fsh @@ -1,7 +1,7 @@ -Instance: EndpointExample +Instance: MessengerEndpointWithVisibility InstanceOf: EndpointDirectoryStrict Usage: #example -Description: "Example of a Endpoint as to be found in gematik FHIR Directory" +Description: "Example of TI-Messenger Endpoint with visibility" * meta.tag[Origin] = Origin#owner * extension[endpointVisibility].valueCoding = EndpointVisibilityCS#hide-versicherte * status = #active "Active" @@ -32,7 +32,7 @@ Description: "Example of an PractitionerRole as to be found in gematik FHIR Dire * meta.tag[Origin] = Origin#ldap * practitioner = Reference(PractitionerExampleDentist) * location[+] = Reference(LocationExample) -* endpoint[+] = Reference(EndpointExample) +* endpoint[+] = Reference(MessengerEndpointWithVisibility) Instance: OrganizationExample @@ -105,5 +105,5 @@ Description: "Example of an HealthcareService as to be found in gematik FHIR Dir * availableTime.availableStartTime = "08:00:00" * availableTime.availableEndTime = "18:00:00" * availabilityExceptions = "An Feiertagen geschlossen" -* endpoint[+] = Reference(EndpointExample) +* endpoint[+] = Reference(MessengerEndpointWithVisibility) * characteristic[technicalCharacteristic] = VZDHealthCareServiceCharacteristicsCS#erx-token-receiver "eRX Token Receiver" diff --git a/src/fhir/input/fsh/examples/PharmacyExample.fsh b/src/fhir/input/fsh/examples/PharmacyExample.fsh index af05e2ef..f00a04c9 100644 --- a/src/fhir/input/fsh/examples/PharmacyExample.fsh +++ b/src/fhir/input/fsh/examples/PharmacyExample.fsh @@ -74,7 +74,7 @@ Description: "PharmacyHealthCareServiceExample" * start = "2024-09-01" * end = "2024-09-21" * availabilityExceptions = "An Feiertagen geschlossen" -* endpoint[+] = Reference(EndpointExample) +* endpoint[+] = Reference(MessengerEndpointWithVisibility) * characteristic[technicalCharacteristic][+] = VZDHealthCareServiceCharacteristicsCS#erx-token-receiver "eRX Token Receiver" * characteristic[technicalCharacteristic][+] = VZDHealthCareServiceCharacteristicsCS#apotheke-verfuegbarkeitsanfrage "Apotheke: Verfügbarkeitsanfrage" * characteristic[technicalCharacteristic][+] = VZDHealthCareServiceCharacteristicsCS#terminbuchung "Terminbuchung" diff --git a/src/fhir/input/fsh/profiles/DataType.fsh b/src/fhir/input/fsh/profiles/DataType.fsh new file mode 100644 index 00000000..e52839c3 --- /dev/null +++ b/src/fhir/input/fsh/profiles/DataType.fsh @@ -0,0 +1,7 @@ +Profile: CodingWithCodeAndSystem +Parent: Coding +Id: CodingWithCodeAndSystem +Title: "Coding with code and system" +Description: "Coding profile making code and system mandatory" +* system 1.. +* code 1.. \ No newline at end of file diff --git a/src/fhir/input/fsh/profiles/EndpointDirectory.fsh b/src/fhir/input/fsh/profiles/EndpointDirectory.fsh index 42083b06..66de3165 100644 --- a/src/fhir/input/fsh/profiles/EndpointDirectory.fsh +++ b/src/fhir/input/fsh/profiles/EndpointDirectory.fsh @@ -10,16 +10,19 @@ Description: "Endpoints for applications in the gematik Directory" * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" * status 1..1 MS +* connectionType obeys CodingSytemCodeInv * connectionType 1..1 MS * code MS * code from EndpointConnectionTypeVS * system MS * name 1..1 MS * payloadType MS + * coding obeys CodingSytemCodeInv * payloadType from EndpointPayloadTypeVS * address 1..1 MS @@ -28,11 +31,15 @@ Parent: EndpointDirectory Id: endpoint-directory-Strict Title: "EndpointDirectory-Strict" Description: "Endpoint in gematik Directory with strict constraints" +* meta.tag only CodingWithCodeAndSystem * meta.tag * ^slicing.rules = #closed +* extension[endpointVisibility].valueCoding only CodingWithCodeAndSystem * identifier 0..0 +* connectionType only CodingWithCodeAndSystem * managingOrganization 0..0 * contact 0..0 * period 0..0 +* payloadType.coding only CodingWithCodeAndSystem * payloadMimeType 0..0 * header 0..0 diff --git a/src/fhir/input/fsh/profiles/Extension.fsh b/src/fhir/input/fsh/profiles/Extension.fsh index c9284ca5..8195fc8c 100644 --- a/src/fhir/input/fsh/profiles/Extension.fsh +++ b/src/fhir/input/fsh/profiles/Extension.fsh @@ -28,6 +28,7 @@ Context: Organization * insert Meta * value[x] MS * value[x] only Coding +* valueCoding obeys CodingSytemCodeInv * valueCoding 1.. MS * valueCoding from OrganizationVisibilityVS @@ -53,6 +54,7 @@ Context: Endpoint * insert Meta * value[x] MS * value[x] only Coding +* valueCoding obeys CodingSytemCodeInv * valueCoding 1.. MS * valueCoding from EndpointVisibilityVS @@ -84,6 +86,7 @@ Context: HealthcareService.availableTime * valuePeriod 1.. MS * extension[qualifier] * value[x] only Coding + * valueCoding obeys CodingSytemCodeInv * valueCoding 1.. MS * valueCoding from OpeningTimeQualifierVS @@ -119,6 +122,7 @@ Context: Organization * value[x] 1.. MS * value[x] only Coding * valueCoding 1.. MS +* valueCoding obeys CodingSytemCodeInv * valueCoding from Iso3166-1-2 * system 1.. MS * code 1.. MS \ No newline at end of file diff --git a/src/fhir/input/fsh/profiles/HealthcareServiceDirectory.fsh b/src/fhir/input/fsh/profiles/HealthcareServiceDirectory.fsh index 36df37fe..27158e42 100644 --- a/src/fhir/input/fsh/profiles/HealthcareServiceDirectory.fsh +++ b/src/fhir/input/fsh/profiles/HealthcareServiceDirectory.fsh @@ -9,6 +9,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" @@ -20,11 +21,14 @@ organisations specific for german Healthcare and Telematics Infrastructure. * identifier contains TelematikID 0..1 MS * identifier[TelematikID] only $IdentifierTelematikID * providedBy 1..1 MS -* category MS +* category MS + * coding obeys CodingSytemCodeInv * category from HealthcareServiceCategoryCodes -* type MS +* type MS + * coding obeys CodingSytemCodeInv * type from HealthcareServiceTypeVS * specialty MS + * coding obeys CodingSytemCodeInv * specialty from HealthcareServiceSpecialtyVS * location ..1 MS * name MS @@ -33,9 +37,10 @@ organisations specific for german Healthcare and Telematics Infrastructure. * value MS * use MS * communication MS + * coding obeys CodingSytemCodeInv * appointmentRequired MS * availableTime MS - * obeys VZD-Service-Opening-Time + * obeys VZD-Service-Opening-TimeInv * extension contains SpecialOpeningTimesEX named specialOpeningTimes 0..1 MS * daysOfWeek ..1 MS * allDay ..0 @@ -47,6 +52,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * availabilityExceptions MS * endpoint MS * characteristic MS + * coding obeys CodingSytemCodeInv * ^short = "Physical Features & Technical Services" * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "$this" @@ -58,7 +64,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * ^short = "Technical Services" * characteristic[physicalFeatures] from PhysicalFeaturesHealthCareServiceVS * extension contains PhysicalFeaturesAdditionalNoteEX named additionalNote 0..1 MS - * ^patternCodeableConcept.coding.system = Canonical(PhysicalFeaturesHealthCareServiceCS) +// * ^patternCodeableConcept.coding.system = Canonical(PhysicalFeaturesHealthCareServiceCS) * ^short = "Physical Features" * coverageArea MS * extension MS @@ -71,11 +77,15 @@ Parent: HealthcareServiceDirectory Id: HealthcareServiceDirectoryStrict Title: "HealthcareServiceDirectoryStrict" Description: "HealthcareService in gematik Directory with strict constraints" +* meta.tag only CodingWithCodeAndSystem * meta.tag * ^slicing.rules = #closed * identifier ^slicing.rules = #closed * active 0..0 +* category.coding only CodingWithCodeAndSystem +* type.coding only CodingWithCodeAndSystem +* specialty.coding only CodingWithCodeAndSystem * comment 0..0 * extraDetails 0..0 * photo 0..0 @@ -90,6 +100,11 @@ Description: "HealthcareService in gematik Directory with strict constraints" * serviceProvisionCode 0..0 * eligibility 0..0 * program 0..0 +* communication.coding only CodingWithCodeAndSystem * characteristic * ^slicing.rules = #closed -* referralMethod 0..0 \ No newline at end of file + * coding only CodingWithCodeAndSystem +* referralMethod 0..0 +* availableTime + * extension[specialOpeningTimes] + * extension[qualifier].valueCoding only CodingWithCodeAndSystem diff --git a/src/fhir/input/fsh/profiles/LocationDirectory.fsh b/src/fhir/input/fsh/profiles/LocationDirectory.fsh index 486e386e..ed563bbd 100644 --- a/src/fhir/input/fsh/profiles/LocationDirectory.fsh +++ b/src/fhir/input/fsh/profiles/LocationDirectory.fsh @@ -9,6 +9,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" diff --git a/src/fhir/input/fsh/profiles/OrganizationDirectory.fsh b/src/fhir/input/fsh/profiles/OrganizationDirectory.fsh index 3e03adc4..73f71fe4 100644 --- a/src/fhir/input/fsh/profiles/OrganizationDirectory.fsh +++ b/src/fhir/input/fsh/profiles/OrganizationDirectory.fsh @@ -12,6 +12,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" @@ -34,6 +35,7 @@ organisations specific for german Healthcare and Telematics Infrastructure. * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "$this" * ^slicing.rules = #open +* type.coding obeys CodingSytemCodeInv * type contains providerType 0..* MS and profession 0..* MS * type[providerType] from OrganizationTypeVS * type[profession] from OrganizationProfessionOIDTypeVS @@ -55,8 +57,11 @@ Parent: OrganizationDirectory Id: OrganizationDirectoryStrict Title: "OrganizationDirectoryStrict" Description: "Organization in gematik Directory with strict constraints" +* meta.tag only CodingWithCodeAndSystem * meta.tag * ^slicing.rules = #closed +* extension[organizationVisibility].valueCoding only CodingWithCodeAndSystem +* extension[ncpehCountryEx].valueCoding only CodingWithCodeAndSystem * identifier ^slicing.rules = #closed * type diff --git a/src/fhir/input/fsh/profiles/PractitionerDirectory.fsh b/src/fhir/input/fsh/profiles/PractitionerDirectory.fsh index c2290eeb..d1424b54 100644 --- a/src/fhir/input/fsh/profiles/PractitionerDirectory.fsh +++ b/src/fhir/input/fsh/profiles/PractitionerDirectory.fsh @@ -6,6 +6,7 @@ Title: "Practitioner in gematik Directory" * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" @@ -36,16 +37,24 @@ Title: "Practitioner in gematik Directory" * qualification MS * code MS * code from PractitionerQualificationVS + * coding obeys CodingSytemCodeInv * communication MS + * coding obeys CodingSytemCodeInv Profile: PractitionerDirectoryStrict Parent: PractitionerDirectory Id: PractitionerDirectoryStrict Title: "PractitionerDirectoryStrict" Description: "Practitioner in gematik Directory with strict constraints" +* meta.tag only CodingWithCodeAndSystem * meta.tag * ^slicing.rules = #closed * identifier ^slicing.rules = #closed * active 0..0 -* address 0..0 \ No newline at end of file +* address 0..0 +* qualification + * code + * coding only CodingWithCodeAndSystem +* communication + * coding only CodingWithCodeAndSystem \ No newline at end of file diff --git a/src/fhir/input/fsh/profiles/PractitionerRoleDirectory.fsh b/src/fhir/input/fsh/profiles/PractitionerRoleDirectory.fsh index 31cd6be3..21908370 100644 --- a/src/fhir/input/fsh/profiles/PractitionerRoleDirectory.fsh +++ b/src/fhir/input/fsh/profiles/PractitionerRoleDirectory.fsh @@ -6,6 +6,7 @@ Title: "PractitionerRole in gematik Directory" * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "system" * ^slicing.rules = #open +* meta.tag obeys CodingSytemCodeInv * meta.tag contains Origin 1..1 MS * meta.tag[Origin] from OriginVS * meta.tag[Origin].system = "https://gematik.de/fhir/directory/CodeSystem/Origin" @@ -21,6 +22,7 @@ Parent: PractitionerRoleDirectory Id: PractitionerRoleDirectoryStrict Title: "PractitionerRoleDirectoryStrict" Description: "PractitionerRole in gematik Directory with strict constraints" +* meta.tag only CodingWithCodeAndSystem * meta.tag * ^slicing.rules = #closed * identifier 0..0