From ac811d0eb0de504110ebd576fe932d14661824db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20B=C3=B6rner?= Date: Sun, 26 Nov 2023 09:07:41 +0100 Subject: [PATCH 01/20] feat: Trigger on every push/pull --- .github/workflows/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 75784198..b344b293 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,9 +6,7 @@ name: CI (FHIR Validation) on: # Triggers the workflow on push or pull request events but only for the master branch push: - branches: [ master ] pull_request: - branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: From 9050c65569e64756656e11079b774813e1ceb6aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20B=C3=B6rner?= Date: Tue, 28 Nov 2023 02:56:08 +0100 Subject: [PATCH 02/20] feat: Update rulesets --- ...yStatement-dokumentenaustausch-server.json | 6 ++-- .../OperationDefinition-UpdateMetadata.json | 4 +-- ...ureDefinition-ISiKDokumentenMetadaten.json | 30 ++++++++++--------- ...finition-ISiKDokumentenSuchergebnisse.json | 2 ++ .../ValueSet-ISiKConfidentialityCodes.json | 4 ++- .../input/fsh/ISiKDokumentenMetadaten.fsh | 2 +- Resources/input/fsh/rulesets.fsh | 8 +++-- Resources/sushi-config.yaml | 7 ----- 8 files changed, 33 insertions(+), 30 deletions(-) diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json index 695a6f31..ffa9ee47 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json @@ -6,7 +6,7 @@ "experimental": false, "version": "3.0.0", "publisher": "gematik GmbH", - "date": "2023-07-01", + "date": "2023-11-28", "implementationGuide": [ "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" ], @@ -118,7 +118,7 @@ } ], "name": "birthdate", - "definition": "hhttp://hl7.org/fhir/SearchParameter/individual-birthdate", + "definition": "http://hl7.org/fhir/SearchParameter/individual-birthdate", "type": "date" }, { @@ -129,7 +129,7 @@ } ], "name": "gender", - "definition": "hhttp://hl7.org/fhir/SearchParameter/individual-gender", + "definition": "http://hl7.org/fhir/SearchParameter/individual-gender", "type": "token" } ] diff --git a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json index b7841675..47be9a69 100644 --- a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json +++ b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json @@ -3,14 +3,14 @@ "id": "UpdateMetadata", "status": "active", "publisher": "gematik GmbH", - "date": "2023-07-01", + "date": "2023-11-28", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/OperationDefinition/UpdateMetadata", "title": "Update document metadata", "kind": "operation", "name": "update-metadata", "description": "Update selected, uncritical document metadata in a safe and controlled manner without having to replace the whole document", "code": "update-metadata", - "comment": "\n Expected behaviour:\n* Servers SHALL update the DocumentReference.docStatus with the submitted values\n* Servers SHALL ensure that DocumentReference.text reflects this change\n", + "comment": "\r\n Expected behaviour:\r\n* Servers SHALL update the DocumentReference.docStatus with the submitted values\r\n* Servers SHALL ensure that DocumentReference.text reflects this change\r\n", "resource": [ "DocumentReference" ], diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index 0bd8915f..a7369a9c 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -6,6 +6,8 @@ "name": "ISiKDokumentenMetadaten", "title": "Erforderliche Metadaten für Dokumentenaustausch in ISiK", "status": "active", + "experimental": false, + "date": "2023-11-28", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ @@ -90,7 +92,7 @@ { "id": "DocumentReference.identifier", "path": "DocumentReference.identifier", - "comment": "Abweichend zu MHD V4.0.1 ist die Angabe eines Identifiers in ISiK nicht erforderlich.\nEin solcher kann bei Bedarf (z.B. zur Weitergabe des Dokumentes per XDS) erzeugt werden.\n [Konsens der Arbeitsgruppe vom 12.11.2021]\n\nUpdate für Stufe 3:\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe eines Identifiers gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n", + "comment": "Abweichend zu MHD V4.0.1 ist die Angabe eines Identifiers in ISiK nicht erforderlich.\r\nEin solcher kann bei Bedarf (z.B. zur Weitergabe des Dokumentes per XDS) erzeugt werden.\r\n [Konsens der Arbeitsgruppe vom 12.11.2021]\r\n\r\nUpdate für Stufe 3:\r\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe eines Identifiers gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n", "mustSupport": true, "mapping": [ { @@ -116,7 +118,7 @@ "id": "DocumentReference.docStatus", "path": "DocumentReference.docStatus", "short": "Bearbeitungsstatus des Dokumentes", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von docStatus im ISiK-Kontext erlaubt. Doe Verwendung von docStatus bleibt jedoch optional,\n da nicht alle Dokumentenerzeugende Systeme einen expliziten Freigabe-Workflow haben. Dokumentenserver müssen jedoch in der Lage sein, den Dokumentenstatus\n (sofern vorhanden) zu persistieren, anzuzeigen und zu reproduzieren.\n [Konsens der Arbeitsgruppe vom 10.12.2021]", + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von docStatus im ISiK-Kontext erlaubt. Doe Verwendung von docStatus bleibt jedoch optional,\r\n da nicht alle Dokumentenerzeugende Systeme einen expliziten Freigabe-Workflow haben. Dokumentenserver müssen jedoch in der Lage sein, den Dokumentenstatus\r\n (sofern vorhanden) zu persistieren, anzuzeigen und zu reproduzieren.\r\n [Konsens der Arbeitsgruppe vom 10.12.2021]", "mustSupport": true, "mapping": [ { @@ -129,7 +131,7 @@ "id": "DocumentReference.type", "path": "DocumentReference.type", "short": "Dokumententyp", - "comment": "Im ISiK-Kontext ist die Typisierung eines Dokumentes mit Hilfe eines KDL-Codes *und* des IHE-XDS-Type-Codes erforderlich und ein Server MUSS beide Kodierungen bereitstellen - trotz der Kardinalität DocumentReference.type.coding:XDS 0..1 -, jedoch ist der IHE-XDS-Type-Code bei Übermittlung für Clients nicht verpflichtend (s.u. zu XDS).\n Während KDL-Codes eine feingranulare Dokumentenklassifikation für die gezielte Suche nach medizinischen und Administrativen Dokumenten ermöglichen,\n sind IHE-XDS-Type-Codes für den einrichtungsübergreifenden Dokumentenaustausch maßgeblich.\n Der XDS-Type-Code kann mit Hilfe der bereitgestellten [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap)\n aus dem KDL-Code ermittelt werden. Weitere Typisierungen (z.B. nach SNOMED oder LOINC) sind uneingeschränkt erlaubt.\n\n [Konsens der Arbeitgruppe vom 18.02.2022]", + "comment": "Im ISiK-Kontext ist die Typisierung eines Dokumentes mit Hilfe eines KDL-Codes *und* des IHE-XDS-Type-Codes erforderlich und ein Server MUSS beide Kodierungen bereitstellen - trotz der Kardinalität DocumentReference.type.coding:XDS 0..1 -, jedoch ist der IHE-XDS-Type-Code bei Übermittlung für Clients nicht verpflichtend (s.u. zu XDS).\r\n Während KDL-Codes eine feingranulare Dokumentenklassifikation für die gezielte Suche nach medizinischen und Administrativen Dokumenten ermöglichen,\r\n sind IHE-XDS-Type-Codes für den einrichtungsübergreifenden Dokumentenaustausch maßgeblich.\r\n Der XDS-Type-Code kann mit Hilfe der bereitgestellten [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap)\r\n aus dem KDL-Code ermittelt werden. Weitere Typisierungen (z.B. nach SNOMED oder LOINC) sind uneingeschränkt erlaubt.\r\n\r\n [Konsens der Arbeitgruppe vom 18.02.2022]", "min": 1, "mustSupport": true }, @@ -196,7 +198,7 @@ "path": "DocumentReference.type.coding", "sliceName": "XDS", "short": "Dokumenttyp gem. IHE-De-Terminologie", - "comment": "Die Übermittlung des XDS-Type-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\n MUSS jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden. Der XDS-Type-Code kann über die im Rahmen der [KDL-Spezifikation](https://simplifier.net/kdl) publizierten\n [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap) aus dem KDL-Code ermittelt werden", + "comment": "Die Übermittlung des XDS-Type-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\r\n MUSS jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden. Der XDS-Type-Code kann über die im Rahmen der [KDL-Spezifikation](https://simplifier.net/kdl) publizierten\r\n [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap) aus dem KDL-Code ermittelt werden", "min": 0, "max": "1", "mustSupport": true, @@ -216,7 +218,7 @@ "id": "DocumentReference.category", "path": "DocumentReference.category", "short": "Dokumentklasse/-Kategorie", - "comment": "Die Kategorisierung von Dokumenten erfolgt mittels der von IHE Deutschland publizierten XDS-Class-Codes.\n Die übermittlung des XDS-Class-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\n muss jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden.\n Der XDS-Class-Code kann mit Hilfe der bereitgestellten [ConceptMap](https://simplifier.net/kdl/~resources?category=ConceptMap)\n aus dem KDL-Code ermittelt werden.", + "comment": "Die Kategorisierung von Dokumenten erfolgt mittels der von IHE Deutschland publizierten XDS-Class-Codes.\r\n Die übermittlung des XDS-Class-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\r\n muss jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden.\r\n Der XDS-Class-Code kann mit Hilfe der bereitgestellten [ConceptMap](https://simplifier.net/kdl/~resources?category=ConceptMap)\r\n aus dem KDL-Code ermittelt werden.", "max": "1", "mustSupport": true }, @@ -310,13 +312,13 @@ { "id": "DocumentReference.date", "path": "DocumentReference.date", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von date im ISiK-Kontext nicht verpflichtend.\nDie Motivation für die verbindliche Verwendung von `date` seitens IHE ist nicht nachvollziehbar.\nEin entsprechender Change Request zur Harmonisierung wurde eingereicht. Das Dokumentendatum wird in attachment.creation gesetzt.\n\nUpdate für Stufe 3:\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe von date gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n" + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von date im ISiK-Kontext nicht verpflichtend.\r\nDie Motivation für die verbindliche Verwendung von `date` seitens IHE ist nicht nachvollziehbar.\r\nEin entsprechender Change Request zur Harmonisierung wurde eingereicht. Das Dokumentendatum wird in attachment.creation gesetzt.\r\n\r\nUpdate für Stufe 3:\r\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe von date gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n" }, { "id": "DocumentReference.author", "path": "DocumentReference.author", "short": "Autor des Dokumentes", - "comment": "In dieser Ausbaustufe ist die Nennung des Namens oder Kürzels des Autors ausreichend.\n Eine darüber hinaus gehende Verlinkung auf einen Pracitioner (auflösbar auf dem Server) ist möglich aber nicht erforderlich.", + "comment": "In dieser Ausbaustufe ist die Nennung des Namens oder Kürzels des Autors ausreichend.\r\n Eine darüber hinaus gehende Verlinkung auf einen Pracitioner (auflösbar auf dem Server) ist möglich aber nicht erforderlich.", "mustSupport": true, "mapping": [ { @@ -379,7 +381,7 @@ "id": "DocumentReference.securityLabel", "path": "DocumentReference.securityLabel", "short": "Vertraulichkeit", - "comment": "Die Bereitstellung des Vertraulichkeitsinformation durch den Ersteller des Dokumentes ist verpflichtend.\nEbenso sind Dokumentenserver verpflichtet, diese Information zu persistieren und bei der Dokumentenabfrage zu reproduzieren.\nDie ISiK-Spezifikation trifft jedoch keine Annahmen darüber, wie sich einzelne Vertraulichkeitsstufen auf die Zugriffsberechtigungen\nverschiedener benutzer auf ein Dokument auswirken. Im ISiK-Kontext ist die Angabe einer der drei Vertraulichkeitsstufen\nN | R | V verpflichtend, jedoch ohne Einschränkung der Verwendung zusätzlicher Vertraulichkeits-Flags.\n \n\n[Konsens der Arbeitsgruppe vom 12.11.2021]", + "comment": "Die Bereitstellung des Vertraulichkeitsinformation durch den Ersteller des Dokumentes ist verpflichtend.\r\nEbenso sind Dokumentenserver verpflichtet, diese Information zu persistieren und bei der Dokumentenabfrage zu reproduzieren.\r\nDie ISiK-Spezifikation trifft jedoch keine Annahmen darüber, wie sich einzelne Vertraulichkeitsstufen auf die Zugriffsberechtigungen\r\nverschiedener benutzer auf ein Dokument auswirken. Im ISiK-Kontext ist die Angabe einer der drei Vertraulichkeitsstufen\r\nN | R | V verpflichtend, jedoch ohne Einschränkung der Verwendung zusätzlicher Vertraulichkeits-Flags.\r\n \r\n\r\n[Konsens der Arbeitsgruppe vom 12.11.2021]", "min": 1, "mustSupport": true, "binding": { @@ -419,7 +421,7 @@ "id": "DocumentReference.content.attachment.language", "path": "DocumentReference.content.attachment.language", "short": "Sprache, in der das Dokument verfasst wurde.", - "comment": "Kann bei Systemen, die keine Mehrsprachigkeit unterstützen,\n fest auf "de" oder "de-DE" gesetzt werden.", + "comment": "Kann bei Systemen, die keine Mehrsprachigkeit unterstützen,\r\n fest auf "de" oder "de-DE" gesetzt werden.", "min": 1, "mustSupport": true, "mapping": [ @@ -433,14 +435,14 @@ "id": "DocumentReference.content.attachment.data", "path": "DocumentReference.content.attachment.data", "short": "Base64-codierte Binärdaten", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \r\n sondern müssen als separates Datenobjekt referenziert werden. \r\n \r\nUpdate für Stufe 3:\r\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \r\nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \r\nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true }, { "id": "DocumentReference.content.attachment.url", "path": "DocumentReference.content.attachment.url", "short": "Referenz auf Dokument", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \r\n sondern müssen als separates Datenobjekt referenziert werden. \r\n \r\nUpdate für Stufe 3:\r\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \r\nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \r\nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true, "mapping": [ { @@ -453,7 +455,7 @@ "id": "DocumentReference.content.attachment.creation", "path": "DocumentReference.content.attachment.creation", "short": "Dokumentendatum", - "comment": "Es obliegt dem erzeugenden System, zu entscheiden,\n welches Datum als Dokumentendatum geeignet ist, z.B. Datum der Erstellung oder Datum der letzten Änderung", + "comment": "Es obliegt dem erzeugenden System, zu entscheiden,\r\n welches Datum als Dokumentendatum geeignet ist, z.B. Datum der Erstellung oder Datum der letzten Änderung", "min": 1, "mustSupport": true, "mapping": [ @@ -467,7 +469,7 @@ "id": "DocumentReference.content.format", "path": "DocumentReference.content.format", "short": "Format des Dokumentes", - "comment": "Sofern das Dokument nicht auf einem standardisierten,\n strukturierten Austauschformat (z.B. CDA) basiert, für dessen Interpretation ein konkretes Schema herangezogen werden muss,\n genügt die Angabe des Codes\n "urn:ihe:iti:xds:2017:mimeTypeSufficient"", + "comment": "Sofern das Dokument nicht auf einem standardisierten,\r\n strukturierten Austauschformat (z.B. CDA) basiert, für dessen Interpretation ein konkretes Schema herangezogen werden muss,\r\n genügt die Angabe des Codes\r\n "urn:ihe:iti:xds:2017:mimeTypeSufficient"", "min": 1, "mustSupport": true, "binding": { @@ -490,7 +492,7 @@ { "id": "DocumentReference.context.encounter", "path": "DocumentReference.context.encounter", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\nUpdate für Stufe 3: \nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n ", + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\r\nUpdate für Stufe 3: \r\nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n ", "max": "1", "mustSupport": true, "mapping": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json index 957eb594..b32defab 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json @@ -6,6 +6,8 @@ "name": "ISiKDokumentenSuchergebnisse", "title": "Suchergebnisse einer Dokumentensuche", "status": "active", + "experimental": false, + "date": "2023-11-28", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json index 07c607c5..0ecde822 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json @@ -5,9 +5,11 @@ "id": "ISiKConfidentialityCodes", "title": "ISiKConfidentialityCodes", "description": "Vertraulichkeitsstufen", - "version": "3.0.0", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", + "version": "3.0.0", + "experimental": false, "publisher": "gematik GmbH", + "date": "2023-11-28", "compose": { "include": [ { diff --git a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh index 0c2912e3..d2b96521 100644 --- a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh +++ b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh @@ -281,7 +281,7 @@ Description: "" * masterIdentifier.system = "urn:ietf:rfc:3986" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" * status = #current -* type.coding[+] = $kdl#PT130102 "Molekularpathologiebefund" +* type.coding[KDL] = $kdl#PT130102 "Molekularpathologiebefund" * description = "Molekularpathologiebefund vom 31.12.21" * subject = Reference(PatientinMusterfrau) * securityLabel = $v3-Confidentiality#N diff --git a/Resources/input/fsh/rulesets.fsh b/Resources/input/fsh/rulesets.fsh index 21e9a55d..adc13cfa 100644 --- a/Resources/input/fsh/rulesets.fsh +++ b/Resources/input/fsh/rulesets.fsh @@ -1,16 +1,20 @@ RuleSet: Meta +* ^version = "3.0.0" +* ^status = #active +* ^experimental = false * ^publisher = "gematik GmbH" +* ^date = "2023-11-28" RuleSet: Meta-Inst * status = #active * publisher = "gematik GmbH" -* date = "2023-07-01" +* date = "2023-11-28" RuleSet: Meta-CapabilityStatement * status = #active * experimental = false * version = "3.0.0" * publisher = "gematik GmbH" -* date = "2023-07-01" +* date = "2023-11-28" * implementationGuide = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" * url = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/CapabilityStatement/dokumentenaustausch-server" diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 31392c0d..f70796c7 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -2,15 +2,8 @@ # │ The properties below are used to create the ImplementationGuide resource. For a list of │ # │ supported properties, see: https://fshschool.org/docs/sushi/configuration/ │ # ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ -id: de.gematik.isik-dokumentenaustausch canonical: https://gematik.de/fhir/isik/v3/Dokumentenaustausch -name: ISiK_Dokumentenaustausch -status: active -version: 3.0.0 fhirVersion: 4.0.1 -publisher: - name: gematik GmbH - url: https://gematik.de dependencies: ihe.iti.mhd: 4.2.0 de.gematik.isik-basismodul: 3.0.0 From 6a1cf2a94fd87eacc0330853853766e060b2e21f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20B=C3=B6rner?= Date: Tue, 28 Nov 2023 03:00:20 +0100 Subject: [PATCH 03/20] fix: FIx warnings --- Resources/input/fsh/ISiKDokumentenMetadaten.fsh | 14 +++++--------- .../input/fsh/ISiKDokumentenSuchergebnisse.fsh | 1 - Resources/input/fsh/OperationUpdateMetadata.fsh | 1 - 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh index d2b96521..07387263 100644 --- a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh +++ b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh @@ -192,8 +192,8 @@ Title: "dok-beispiel" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" * status = #current * category = $ihe-de-class#BEF "Befundbericht" -* type.coding[+] = $kdl#PT130102 "Molekularpathologiebefund" -* type.coding[+] = $ihe-de-type#PATH "Pathologiebefundberichte" +* type.coding[KDL] = $kdl#PT130102 "Molekularpathologiebefund" +* type.coding[XDS] = $ihe-de-type#PATH "Pathologiebefundberichte" * description = "Molekularpathologiebefund vom 31.12.21" * subject = Reference(PatientinMusterfrau) * securityLabel = $v3-Confidentiality#N @@ -210,12 +210,11 @@ Instance: dok-beispiel-client-with-binary-pdf-example-short InstanceOf: ISiKDokumentenMetadaten Usage: #example Title: "dok-beispiel" -Description: "" * meta.security = $v3-ActReason#HTEST * masterIdentifier.system = "urn:ietf:rfc:3986" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" * status = #current -* type.coding[+] = $kdl#PT130102 "Molekularpathologiebefund" +* type.coding[KDL] = $kdl#PT130102 "Molekularpathologiebefund" * description = "Molekularpathologiebefund vom 31.12.21" * subject = Reference(PatientinMusterfrau) * securityLabel = $v3-Confidentiality#N @@ -232,12 +231,11 @@ Instance: dok-beispiel-client-with-binary-jpeg-example-short InstanceOf: ISiKDokumentenMetadaten Usage: #example Title: "dok-beispiel" -Description: "" * meta.security = $v3-ActReason#HTEST * masterIdentifier.system = "urn:ietf:rfc:3986" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" * status = #current -* type.coding[+] = $kdl#ED020101 "Fotodokumentation Operation" +* type.coding[KDL] = $kdl#ED020101 "Fotodokumentation Operation" * description = "Fotodokumentation Operation vom 31.12.21" * subject = Reference(PatientinMusterfrau) * securityLabel = $v3-Confidentiality#N @@ -254,12 +252,11 @@ Instance: dok-beispiel-client-with-binary-jpeg-example InstanceOf: ISiKDokumentenMetadaten Usage: #example Title: "dok-beispiel" -Description: "" * meta.security = $v3-ActReason#HTEST * masterIdentifier.system = "urn:ietf:rfc:3986" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" * status = #current -* type.coding[+] = $kdl#ED020101 "Fotodokumentation Operation" +* type.coding[KDL] = $kdl#ED020101 "Fotodokumentation Operation" * description = "Fotodokumentation Operation vom 31.12.21" * subject = Reference(PatientinMusterfrau) * securityLabel = $v3-Confidentiality#N @@ -276,7 +273,6 @@ Instance: dok-beispiel-client-with-binary-pdf-example InstanceOf: ISiKDokumentenMetadaten Usage: #example Title: "dok-beispiel" -Description: "" * meta.security = $v3-ActReason#HTEST * masterIdentifier.system = "urn:ietf:rfc:3986" * masterIdentifier.value = "urn:oid:1.2.840.113556.1.8000.2554.58783.21864.3474.19410.44358.58254.41281.46340" diff --git a/Resources/input/fsh/ISiKDokumentenSuchergebnisse.fsh b/Resources/input/fsh/ISiKDokumentenSuchergebnisse.fsh index 21fd8d65..8d7afba5 100644 --- a/Resources/input/fsh/ISiKDokumentenSuchergebnisse.fsh +++ b/Resources/input/fsh/ISiKDokumentenSuchergebnisse.fsh @@ -19,7 +19,6 @@ Instance: Suchergebnis-Beispiel InstanceOf: ISiKDokumentenSuchergebnisse Usage: #example Title: "Suchergebnis-Beispiel" -Description: "" * total = 1 * entry.fullUrl = "http://meinfhirserver.de/DocumentReference/dok-beispiel" * entry.resource = dok-beispiel-server diff --git a/Resources/input/fsh/OperationUpdateMetadata.fsh b/Resources/input/fsh/OperationUpdateMetadata.fsh index 48e4433e..3ff0c1d5 100644 --- a/Resources/input/fsh/OperationUpdateMetadata.fsh +++ b/Resources/input/fsh/OperationUpdateMetadata.fsh @@ -2,7 +2,6 @@ Instance: UpdateMetadata InstanceOf: OperationDefinition Usage: #example Title: "update-metadata" -Description: "" * insert Meta-Inst * url = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/OperationDefinition/UpdateMetadata" * title = "Update document metadata" From 239adc58f37a70488d01ff0e81cc9f9f720a50ad Mon Sep 17 00:00:00 2001 From: ylboerner Date: Tue, 28 Nov 2023 02:03:51 +0000 Subject: [PATCH 04/20] Commit from GitHub Actions (CI (FHIR Validation)) --- .../OperationDefinition-UpdateMetadata.json | 2 +- ...ureDefinition-ISiKDokumentenMetadaten.json | 28 +++++++++---------- .../ValueSet-ISiKConfidentialityCodes.json | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json index 47be9a69..0a4b2e5f 100644 --- a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json +++ b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json @@ -10,7 +10,7 @@ "name": "update-metadata", "description": "Update selected, uncritical document metadata in a safe and controlled manner without having to replace the whole document", "code": "update-metadata", - "comment": "\r\n Expected behaviour:\r\n* Servers SHALL update the DocumentReference.docStatus with the submitted values\r\n* Servers SHALL ensure that DocumentReference.text reflects this change\r\n", + "comment": "\n Expected behaviour:\n* Servers SHALL update the DocumentReference.docStatus with the submitted values\n* Servers SHALL ensure that DocumentReference.text reflects this change\n", "resource": [ "DocumentReference" ], diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index a7369a9c..34877b00 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -92,7 +92,7 @@ { "id": "DocumentReference.identifier", "path": "DocumentReference.identifier", - "comment": "Abweichend zu MHD V4.0.1 ist die Angabe eines Identifiers in ISiK nicht erforderlich.\r\nEin solcher kann bei Bedarf (z.B. zur Weitergabe des Dokumentes per XDS) erzeugt werden.\r\n [Konsens der Arbeitsgruppe vom 12.11.2021]\r\n\r\nUpdate für Stufe 3:\r\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe eines Identifiers gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n", + "comment": "Abweichend zu MHD V4.0.1 ist die Angabe eines Identifiers in ISiK nicht erforderlich.\nEin solcher kann bei Bedarf (z.B. zur Weitergabe des Dokumentes per XDS) erzeugt werden.\n [Konsens der Arbeitsgruppe vom 12.11.2021]\n\nUpdate für Stufe 3:\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe eines Identifiers gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n", "mustSupport": true, "mapping": [ { @@ -118,7 +118,7 @@ "id": "DocumentReference.docStatus", "path": "DocumentReference.docStatus", "short": "Bearbeitungsstatus des Dokumentes", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von docStatus im ISiK-Kontext erlaubt. Doe Verwendung von docStatus bleibt jedoch optional,\r\n da nicht alle Dokumentenerzeugende Systeme einen expliziten Freigabe-Workflow haben. Dokumentenserver müssen jedoch in der Lage sein, den Dokumentenstatus\r\n (sofern vorhanden) zu persistieren, anzuzeigen und zu reproduzieren.\r\n [Konsens der Arbeitsgruppe vom 10.12.2021]", + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von docStatus im ISiK-Kontext erlaubt. Doe Verwendung von docStatus bleibt jedoch optional,\n da nicht alle Dokumentenerzeugende Systeme einen expliziten Freigabe-Workflow haben. Dokumentenserver müssen jedoch in der Lage sein, den Dokumentenstatus\n (sofern vorhanden) zu persistieren, anzuzeigen und zu reproduzieren.\n [Konsens der Arbeitsgruppe vom 10.12.2021]", "mustSupport": true, "mapping": [ { @@ -131,7 +131,7 @@ "id": "DocumentReference.type", "path": "DocumentReference.type", "short": "Dokumententyp", - "comment": "Im ISiK-Kontext ist die Typisierung eines Dokumentes mit Hilfe eines KDL-Codes *und* des IHE-XDS-Type-Codes erforderlich und ein Server MUSS beide Kodierungen bereitstellen - trotz der Kardinalität DocumentReference.type.coding:XDS 0..1 -, jedoch ist der IHE-XDS-Type-Code bei Übermittlung für Clients nicht verpflichtend (s.u. zu XDS).\r\n Während KDL-Codes eine feingranulare Dokumentenklassifikation für die gezielte Suche nach medizinischen und Administrativen Dokumenten ermöglichen,\r\n sind IHE-XDS-Type-Codes für den einrichtungsübergreifenden Dokumentenaustausch maßgeblich.\r\n Der XDS-Type-Code kann mit Hilfe der bereitgestellten [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap)\r\n aus dem KDL-Code ermittelt werden. Weitere Typisierungen (z.B. nach SNOMED oder LOINC) sind uneingeschränkt erlaubt.\r\n\r\n [Konsens der Arbeitgruppe vom 18.02.2022]", + "comment": "Im ISiK-Kontext ist die Typisierung eines Dokumentes mit Hilfe eines KDL-Codes *und* des IHE-XDS-Type-Codes erforderlich und ein Server MUSS beide Kodierungen bereitstellen - trotz der Kardinalität DocumentReference.type.coding:XDS 0..1 -, jedoch ist der IHE-XDS-Type-Code bei Übermittlung für Clients nicht verpflichtend (s.u. zu XDS).\n Während KDL-Codes eine feingranulare Dokumentenklassifikation für die gezielte Suche nach medizinischen und Administrativen Dokumenten ermöglichen,\n sind IHE-XDS-Type-Codes für den einrichtungsübergreifenden Dokumentenaustausch maßgeblich.\n Der XDS-Type-Code kann mit Hilfe der bereitgestellten [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap)\n aus dem KDL-Code ermittelt werden. Weitere Typisierungen (z.B. nach SNOMED oder LOINC) sind uneingeschränkt erlaubt.\n\n [Konsens der Arbeitgruppe vom 18.02.2022]", "min": 1, "mustSupport": true }, @@ -198,7 +198,7 @@ "path": "DocumentReference.type.coding", "sliceName": "XDS", "short": "Dokumenttyp gem. IHE-De-Terminologie", - "comment": "Die Übermittlung des XDS-Type-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\r\n MUSS jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden. Der XDS-Type-Code kann über die im Rahmen der [KDL-Spezifikation](https://simplifier.net/kdl) publizierten\r\n [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap) aus dem KDL-Code ermittelt werden", + "comment": "Die Übermittlung des XDS-Type-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\n MUSS jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden. Der XDS-Type-Code kann über die im Rahmen der [KDL-Spezifikation](https://simplifier.net/kdl) publizierten\n [ConceptMaps](https://simplifier.net/kdl/~resources?category=ConceptMap) aus dem KDL-Code ermittelt werden", "min": 0, "max": "1", "mustSupport": true, @@ -218,7 +218,7 @@ "id": "DocumentReference.category", "path": "DocumentReference.category", "short": "Dokumentklasse/-Kategorie", - "comment": "Die Kategorisierung von Dokumenten erfolgt mittels der von IHE Deutschland publizierten XDS-Class-Codes.\r\n Die übermittlung des XDS-Class-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\r\n muss jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden.\r\n Der XDS-Class-Code kann mit Hilfe der bereitgestellten [ConceptMap](https://simplifier.net/kdl/~resources?category=ConceptMap)\r\n aus dem KDL-Code ermittelt werden.", + "comment": "Die Kategorisierung von Dokumenten erfolgt mittels der von IHE Deutschland publizierten XDS-Class-Codes.\n Die übermittlung des XDS-Class-Codes ist im Rahmen der Dokumentenbereitstellung für Clients nicht verpflichtend,\n muss jedoch vom Server bei der Entgegennahme ggf. ergänzt und bei der Dokumentenabfrage zurückgegeben werden.\n Der XDS-Class-Code kann mit Hilfe der bereitgestellten [ConceptMap](https://simplifier.net/kdl/~resources?category=ConceptMap)\n aus dem KDL-Code ermittelt werden.", "max": "1", "mustSupport": true }, @@ -312,13 +312,13 @@ { "id": "DocumentReference.date", "path": "DocumentReference.date", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von date im ISiK-Kontext nicht verpflichtend.\r\nDie Motivation für die verbindliche Verwendung von `date` seitens IHE ist nicht nachvollziehbar.\r\nEin entsprechender Change Request zur Harmonisierung wurde eingereicht. Das Dokumentendatum wird in attachment.creation gesetzt.\r\n\r\nUpdate für Stufe 3:\r\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe von date gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n" + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung von date im ISiK-Kontext nicht verpflichtend.\nDie Motivation für die verbindliche Verwendung von `date` seitens IHE ist nicht nachvollziehbar.\nEin entsprechender Change Request zur Harmonisierung wurde eingereicht. Das Dokumentendatum wird in attachment.creation gesetzt.\n\nUpdate für Stufe 3:\nIn MHD 4.2.0 wurde die Verpflichtung zur Angabe von date gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n" }, { "id": "DocumentReference.author", "path": "DocumentReference.author", "short": "Autor des Dokumentes", - "comment": "In dieser Ausbaustufe ist die Nennung des Namens oder Kürzels des Autors ausreichend.\r\n Eine darüber hinaus gehende Verlinkung auf einen Pracitioner (auflösbar auf dem Server) ist möglich aber nicht erforderlich.", + "comment": "In dieser Ausbaustufe ist die Nennung des Namens oder Kürzels des Autors ausreichend.\n Eine darüber hinaus gehende Verlinkung auf einen Pracitioner (auflösbar auf dem Server) ist möglich aber nicht erforderlich.", "mustSupport": true, "mapping": [ { @@ -381,7 +381,7 @@ "id": "DocumentReference.securityLabel", "path": "DocumentReference.securityLabel", "short": "Vertraulichkeit", - "comment": "Die Bereitstellung des Vertraulichkeitsinformation durch den Ersteller des Dokumentes ist verpflichtend.\r\nEbenso sind Dokumentenserver verpflichtet, diese Information zu persistieren und bei der Dokumentenabfrage zu reproduzieren.\r\nDie ISiK-Spezifikation trifft jedoch keine Annahmen darüber, wie sich einzelne Vertraulichkeitsstufen auf die Zugriffsberechtigungen\r\nverschiedener benutzer auf ein Dokument auswirken. Im ISiK-Kontext ist die Angabe einer der drei Vertraulichkeitsstufen\r\nN | R | V verpflichtend, jedoch ohne Einschränkung der Verwendung zusätzlicher Vertraulichkeits-Flags.\r\n \r\n\r\n[Konsens der Arbeitsgruppe vom 12.11.2021]", + "comment": "Die Bereitstellung des Vertraulichkeitsinformation durch den Ersteller des Dokumentes ist verpflichtend.\nEbenso sind Dokumentenserver verpflichtet, diese Information zu persistieren und bei der Dokumentenabfrage zu reproduzieren.\nDie ISiK-Spezifikation trifft jedoch keine Annahmen darüber, wie sich einzelne Vertraulichkeitsstufen auf die Zugriffsberechtigungen\nverschiedener benutzer auf ein Dokument auswirken. Im ISiK-Kontext ist die Angabe einer der drei Vertraulichkeitsstufen\nN | R | V verpflichtend, jedoch ohne Einschränkung der Verwendung zusätzlicher Vertraulichkeits-Flags.\n \n\n[Konsens der Arbeitsgruppe vom 12.11.2021]", "min": 1, "mustSupport": true, "binding": { @@ -421,7 +421,7 @@ "id": "DocumentReference.content.attachment.language", "path": "DocumentReference.content.attachment.language", "short": "Sprache, in der das Dokument verfasst wurde.", - "comment": "Kann bei Systemen, die keine Mehrsprachigkeit unterstützen,\r\n fest auf "de" oder "de-DE" gesetzt werden.", + "comment": "Kann bei Systemen, die keine Mehrsprachigkeit unterstützen,\n fest auf "de" oder "de-DE" gesetzt werden.", "min": 1, "mustSupport": true, "mapping": [ @@ -435,14 +435,14 @@ "id": "DocumentReference.content.attachment.data", "path": "DocumentReference.content.attachment.data", "short": "Base64-codierte Binärdaten", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \r\n sondern müssen als separates Datenobjekt referenziert werden. \r\n \r\nUpdate für Stufe 3:\r\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \r\nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \r\nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true }, { "id": "DocumentReference.content.attachment.url", "path": "DocumentReference.content.attachment.url", "short": "Referenz auf Dokument", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \r\n sondern müssen als separates Datenobjekt referenziert werden. \r\n \r\nUpdate für Stufe 3:\r\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \r\nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \r\nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true, "mapping": [ { @@ -455,7 +455,7 @@ "id": "DocumentReference.content.attachment.creation", "path": "DocumentReference.content.attachment.creation", "short": "Dokumentendatum", - "comment": "Es obliegt dem erzeugenden System, zu entscheiden,\r\n welches Datum als Dokumentendatum geeignet ist, z.B. Datum der Erstellung oder Datum der letzten Änderung", + "comment": "Es obliegt dem erzeugenden System, zu entscheiden,\n welches Datum als Dokumentendatum geeignet ist, z.B. Datum der Erstellung oder Datum der letzten Änderung", "min": 1, "mustSupport": true, "mapping": [ @@ -469,7 +469,7 @@ "id": "DocumentReference.content.format", "path": "DocumentReference.content.format", "short": "Format des Dokumentes", - "comment": "Sofern das Dokument nicht auf einem standardisierten,\r\n strukturierten Austauschformat (z.B. CDA) basiert, für dessen Interpretation ein konkretes Schema herangezogen werden muss,\r\n genügt die Angabe des Codes\r\n "urn:ihe:iti:xds:2017:mimeTypeSufficient"", + "comment": "Sofern das Dokument nicht auf einem standardisierten,\n strukturierten Austauschformat (z.B. CDA) basiert, für dessen Interpretation ein konkretes Schema herangezogen werden muss,\n genügt die Angabe des Codes\n "urn:ihe:iti:xds:2017:mimeTypeSufficient"", "min": 1, "mustSupport": true, "binding": { @@ -492,7 +492,7 @@ { "id": "DocumentReference.context.encounter", "path": "DocumentReference.context.encounter", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\r\nUpdate für Stufe 3: \r\nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\r\n ", + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\nUpdate für Stufe 3: \nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n ", "max": "1", "mustSupport": true, "mapping": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json index 0ecde822..0377ae5d 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json @@ -5,8 +5,8 @@ "id": "ISiKConfidentialityCodes", "title": "ISiKConfidentialityCodes", "description": "Vertraulichkeitsstufen", - "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", "version": "3.0.0", + "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", "experimental": false, "publisher": "gematik GmbH", "date": "2023-11-28", From 327140351b969fdded5153c74f81d98a291c665a Mon Sep 17 00:00:00 2001 From: f-peverali <112709306+f-peverali@users.noreply.github.com> Date: Fri, 1 Dec 2023 16:04:40 +0100 Subject: [PATCH 05/20] Update sushi-config.yaml --- Resources/sushi-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 31392c0d..3447b7c1 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -6,7 +6,7 @@ id: de.gematik.isik-dokumentenaustausch canonical: https://gematik.de/fhir/isik/v3/Dokumentenaustausch name: ISiK_Dokumentenaustausch status: active -version: 3.0.0 +version: 3.0.1 fhirVersion: 4.0.1 publisher: name: gematik GmbH From 4397350a8324cc89cba12f7493a628b61c4f9e01 Mon Sep 17 00:00:00 2001 From: f-peverali <112709306+f-peverali@users.noreply.github.com> Date: Mon, 11 Dec 2023 14:41:07 +0100 Subject: [PATCH 06/20] improve requirements ressources Basismodul - ptdata-773 (#163) * update general usage of Basis ressources * rm: SEARCH Encounter.account.identifier + typofix * rm: example encounter.account.identifier * add clarification on Encounter + rm example * rm: CpS statements for Encounter+Patient * add requirement in profile * comments on references to ISIK basis resources * add notes --------- Co-authored-by: alexey-tschudnowsky --- .../AkteureUndInteraktionen-Akteure.md | 2 - ...teureUndInteraktionen-Dokumentenabfrage.md | 10 +- ...en-Interaktion-Dokumentenbereitstellung.md | 8 +- ImplementationGuide/markdown/Datenobjekte.md | 7 +- ImplementationGuide/markdown/DecisionLog.md | 11 +++ .../DocumentReference_Interaktionen.md | 11 --- ImplementationGuide/markdown/ReleaseNotes.md | 6 ++ .../input/fsh/ISiKDokumentenMetadaten.fsh | 8 +- Resources/input/fsh/capabilitystatement.fsh | 93 +------------------ 9 files changed, 35 insertions(+), 121 deletions(-) create mode 100644 ImplementationGuide/markdown/DecisionLog.md diff --git a/ImplementationGuide/markdown/AkteureUndInteraktionen-Akteure.md b/ImplementationGuide/markdown/AkteureUndInteraktionen-Akteure.md index 875ba5ec..fd39747c 100644 --- a/ImplementationGuide/markdown/AkteureUndInteraktionen-Akteure.md +++ b/ImplementationGuide/markdown/AkteureUndInteraktionen-Akteure.md @@ -1,8 +1,6 @@ ## Akteure ### Dokumentenserver Das bestätigungsrelevante System nimmt die Rolle des Dokumentenservers ein. Ein Dokumentenserver nimmt Dokumente von Clients zur Speicherung/Archivierung/Verwaltung entgegen und erlaubt Clients die Suche nach und den Abruf von Dokumenten. -Dieses ISiK-Modul legt fest, welche Suchkriterien mindestens implementiert werden müssen und welche Kriterien darüber hinaus optional bereitgestellt werden können. -Um Clients die Herstellung von Patienten- und Encounterkontext zu ermöglichen, müssen weiterhin die im Basismodul Stufe 3 festgelegten Interaktionen auf den Datenobjekten ["Patient"](https://simplifier.net/guide/implementierungsleitfaden-isik-basismodul-stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Patient?version=current#ImplementationGuide-markdown-Patient-Patient-Interaktionen) und ["Kontakt/Fall (Encounter)"](https://simplifier.net/guide/implementierungsleitfaden-isik-basismodul-stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Patient?version=current#ImplementationGuide-markdown-Patient-Patient-Interaktionen) implementiert werden. Der Dokumentenserver nimmt im IHE-MHD-Kontext die Rollen [Document Recipient](https://profiles.ihe.net/ITI/MHD/1331_actors_and_transactions.html#133113-document-recipient) und [Document Responder](https://profiles.ihe.net/ITI/MHD/1331_actors_and_transactions.html#133114-document-responder) ein und implementiert die IHE-MHD-Interaktionen * Simplified Publish [ITI-105] (verpflichtend) diff --git a/ImplementationGuide/markdown/AkteureUndInteraktionen-Dokumentenabfrage.md b/ImplementationGuide/markdown/AkteureUndInteraktionen-Dokumentenabfrage.md index 473af0c6..faf2a6e6 100644 --- a/ImplementationGuide/markdown/AkteureUndInteraktionen-Dokumentenabfrage.md +++ b/ImplementationGuide/markdown/AkteureUndInteraktionen-Dokumentenabfrage.md @@ -61,16 +61,8 @@ Die Vereinbarungen gelten uneingeschränkt. Es gelten die Vereinbarungen gemäß {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md}} #### [2:3.67.5 Security Considerations](https://profiles.ihe.net/ITI/MHD/ITI-67.html#23675-security-considerations) -Für Hinweise zur Implementierung von Autorisation und Authentifikation im ISiK-Kontext, siehe [Modul ISiK-Sicherheit](https://simplifier.net/isik-sicherheit-v3) - +Für Hinweise zur Implementierung von Autorisation und Authentifikation im ISiK-Kontext, siehe [Modul ISiK-Sicherheit](https://simplifier.net/isik-sicherheit-v3). -#### Beispiele -* Suche anhand von Patientenkontext (PID) und Dokumentendatum: - `[base]/DocumentReference?patient.identifier=1234&creation=gt2021-10-06` -* Suche nach vorläufigen Endoskopiebefunden (anhand KDL-Dokumenttyp und `docStatus`): - `[base]/DocumentReference?type=http://dvmd.de/fhir/CodeSystem/kdl|DG02010&doc-status=preliminary` -* Suche von Dokumenten anhand der Nummer des Abrechnungsfalles: - `[base]/DocumentReference?encounter.account:identifier=56789` ### Dokumentenzugriff (IHE MHD ITI-68 (Retrieve Document)) diff --git a/ImplementationGuide/markdown/AkteureUndInteraktionen-Interaktion-Dokumentenbereitstellung.md b/ImplementationGuide/markdown/AkteureUndInteraktionen-Interaktion-Dokumentenbereitstellung.md index b9618038..d9283c19 100644 --- a/ImplementationGuide/markdown/AkteureUndInteraktionen-Interaktion-Dokumentenbereitstellung.md +++ b/ImplementationGuide/markdown/AkteureUndInteraktionen-Interaktion-Dokumentenbereitstellung.md @@ -3,14 +3,14 @@ Vor der Bereitstellung von Dokumenten muss ein Client einen Patienten- und Encounterkontext herstellen, damit das Dokument serverseitig anhand der Patient- und Encounter-Verlinkungen in der DocumentReference korrekt zugeordnet werden kann. Zur Herstellung des Kontextes sind folgende Verfahren möglich: -1. **SMARTApp Launch**: Wenn der Aufruf der App im Rahmen des SMART-Frameworks erfolgt, kennt der Client bereits beim Start den aktuellen Patienten- und ggf. den Encounterkontext. Dabei wählt ein Anwender im Primärsystem (Server) einen Patienten und Fall aus und startet in diesem Kontext die App. Referenzen auf Patient und Encounter werden im Zuge der Authorisierung vom Server an Client übermittelt. (Siehe Modul [Sicherheit - Launch Context und Scopes](https://simplifier.net/guide/isik-sicherheit/ImplementationGuide-markdown-ScopesAndLaunchContext?version=current)). -2. **Bekannte Fallnummer**: Der Client kennt die (Abrechnungs-)Fallnummer (z.B. durch das Einscannen eines Barcodes, oder beim Mapping von V2 auf FHIR aus PV1.#19). Der Client sucht den Encounter anhand der Fallnummer (`[base]/Encounter?account:identifier=`). Da unter einer Abrechnungs-Fallnummer mehrere Encounter (Besuche) zusammengefasst werden können (z.B. vorstationär + stationär + nachstationär), sollte als zusätzliches Suchkriterium entweder ein Datum/Zeitraum oder eine Selektion auf `Encounter.status` verwendet werden. Wenn ein zutreffender Encounter gefunden wurde, kann der Patientenkontext aus der subject-Referenz des Encounters entnommen werden. +1. **SMARTApp Launch**: Wenn der Aufruf der App im Rahmen des SMART-Frameworks erfolgt, kennt der Client bereits beim Start den aktuellen Patienten- und ggf. den Encounterkontext. Dabei wählt ein Anwender im Primärsystem (Server) einen Patienten und Fall aus und startet in diesem Kontext die App. Referenzen auf Patient und Encounter werden im Zuge der Autorisierung vom Server an Client übermittelt. (Siehe Modul [Sicherheit - Launch Context und Scopes](https://simplifier.net/guide/isik-sicherheit/ImplementationGuide-markdown-ScopesAndLaunchContext?version=current)). +2. **Bekannte Fallnummer**: Der Client kennt die (Abrechnungs-)Fallnummer (z.B. durch das Einscannen eines Barcodes, oder beim Mapping von V2 auf FHIR aus PV1.#19). Der Client sucht den Encounter im Patienten-führenden System anhand der Fallnummer (`[base]/Encounter?account:identifier=`). Da unter einer Abrechnungs-Fallnummer mehrere Encounter (Besuche) zusammengefasst werden können (z.B. vorstationär + stationär + nachstationär), sollte als zusätzliches Suchkriterium entweder ein Datum/Zeitraum oder eine Selektion auf `Encounter.status` verwendet werden. Wenn ein zutreffender Encounter gefunden wurde, kann der Patientenkontext aus der subject-Referenz des Encounters entnommen werden. 3. **Arbeitsliste**: Der Client ruft auf dem Server eine Arbeitsliste ab (z.B. Liste aller Encounter, die aktuell auf einer bestimmten Station/Ambulanz stattfinden, Liste aller ServiceRequests/Tasks, die durch den Client abgearbeitet werden müssen (aktuell noch nicht im Scope der ISiK-Spezifikationen!) und etabliert den Kontext, nachdem der Benutzer einen Eintrag der Liste ausgewählt hat. -4. **Manuelle Auswahl**. Nach dem Start des Clients verwendet der Benutzer eine Suchmaske, in der anhand von Patientennummer oder anderer demografischer Daten gesucht werden kann. Der Client verwendet die [Patient-Interaktionen des ISiK-Basismoduls](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Patient?version=current#ImplementationGuide-markdown-Patient-Patient-Interaktionen), um auf dem Server nach zutreffenden Patienten zu suchen. Der Anwender wählt den gesuchten Patienten aus der Liste der Suchtreffer aus. Im Anschluss listet der Client, mithílfe der [Encounter-Interaktionen des ISiK-Basismoduls](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Kontakt?version=current#I-markdown-KontaktGesundheitseinrichtung-Kontakt-Interaktionen), die relevanten Besuche des ausgewählten Patienten auf. (Anm.: Welche Besuche als "relevant" erachtet werden, liegt im Ermessen des Clients. Es könnte z.B. anhand von `Encounter.period`, `Encounter.class` und/oder `Encounter.status` gefiltert werden). Der Anwender wählt den zutreffenden Encounter aus. +4. **Manuelle Auswahl**. Nach dem Start des Clients verwendet der Benutzer eine Suchmaske, in der anhand von Patientennummer oder anderer demografischer Daten gesucht werden kann. Der Client verwendet die [Patient-Interaktionen des ISiK-Basismoduls](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Patient?version=current#ImplementationGuide-markdown-Patient-Patient-Interaktionen), um auf dem Server nach zutreffenden Patienten zu suchen. Der Anwender wählt den gesuchten Patienten aus der Liste der Suchtreffer aus. Im Anschluss listet der Client, mithilfe der [Encounter-Interaktionen des ISiK-Basismoduls](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Kontakt?version=current#I-markdown-KontaktGesundheitseinrichtung-Kontakt-Interaktionen), die relevanten Besuche des ausgewählten Patienten auf. (Anm.: Welche Besuche als "relevant" erachtet werden, liegt im Ermessen des Clients. Es könnte z.B. anhand von `Encounter.period`, `Encounter.class` und/oder `Encounter.status` gefiltert werden). Der Anwender wählt den zutreffenden Encounter aus. | Hinweis | Gefahr fehlerhafter Zuordnung!| |---------|---------------------| -| {{render:ImplementationGuide-Images-ig-bilder-Warning}} | Die manuelle Auswahl von Patienten- und Fallkontext durch einen Benutzer ist fehleranfällig. Clients müssen geeigente Vorkehrungen und Plausibilitätsprüfungen implementieren um Falschzuordnungen zu verhindern.| +| {{render:ImplementationGuide-Images-ig-bilder-Warning}} | Die manuelle Auswahl von Patienten- und Fallkontext durch einen Benutzer ist fehleranfällig. Clients müssen geeignete Vorkehrungen und Plausibilitätsprüfungen implementieren um Falschzuordnungen zu verhindern.| ### Dokumentenübermittlung (IHE MHD ITI-105 (Simplified Publish)) diff --git a/ImplementationGuide/markdown/Datenobjekte.md b/ImplementationGuide/markdown/Datenobjekte.md index 73384efe..892540b2 100644 --- a/ImplementationGuide/markdown/Datenobjekte.md +++ b/ImplementationGuide/markdown/Datenobjekte.md @@ -1,10 +1,13 @@ # Datenobjekte -Folgende Datenobjekte und Interaktionen aus dem Modul [ISiK Basis Stufe 3](https://simplifier.net/guide/implementierungsleitfaden-isik-basismodul-stufe-3?version=current) sind in diesem Modul bestätigungsrelevant: +Folgende Datenobjekte aus dem Modul [ISiK Basis Stufe 3](https://simplifier.net/guide/implementierungsleitfaden-isik-basismodul-stufe-3?version=current) werden in diesem Modul verwendet: * [Patient](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Patient?version=current) * [Kontakt/Fall (Encounter)](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Kontakt?version=current) * [Binary](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Binary?version=current) - + +Die Verwendung in diesem Modul bedeutet: +Wenn dieses Modul auf Datenobjekte aus dem Basismodul referenziert, dann MÜSSEN die referenzierten FHIR-Ressourcen konform zu den Vorgaben aus dem Basismodul sein. +Die Referenzierung von im Basismodul spezifizierten Datenobjekten, bedeutet nicht, dass die Interaktionen für die entsprechenden Datenobjekte aus dem Basismodul auch im Modul Dokumentenaustausch bestätigungsrelevant sind. Ein bestätigungsrelevantes System MUSS sicherstellen, dass die Referenzen auflösbar sind. Darüber hinaus gelten in diesem Modul folgende Datenobjekt-spezifische Festlegungen: diff --git a/ImplementationGuide/markdown/DecisionLog.md b/ImplementationGuide/markdown/DecisionLog.md new file mode 100644 index 00000000..6ab7096d --- /dev/null +++ b/ImplementationGuide/markdown/DecisionLog.md @@ -0,0 +1,11 @@ +# Decision Log + +---- +Version: 3.0.1 + +Datum: 11.12.2023 + +* Problem: Für das Modul Dokumentenaustausch sind die Abhängigkeit der Referenzierten Ressourcen Encounter und Patient zum ISIK Basismodul nicht klar herausgearbeitet. + * Option A (ggf. mit Nennung der Risiken): Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisieren + * Option B (ggf. mit Nennung der Risiken): Keine Änderung, damit bleiben offene Fragen zur Nutzung von Basismodul Ressourcen unklar + * Entscheidung: Option A - umgesetzt hier: Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert \ No newline at end of file diff --git a/ImplementationGuide/markdown/DocumentReference_Interaktionen.md b/ImplementationGuide/markdown/DocumentReference_Interaktionen.md index a1c10aa1..69a43941 100644 --- a/ImplementationGuide/markdown/DocumentReference_Interaktionen.md +++ b/ImplementationGuide/markdown/DocumentReference_Interaktionen.md @@ -93,14 +93,3 @@ Die in IHE-MHD geltende Einschränkung, dass Clients bei allen Suchen mindestens Anwendungshinweise: Weitere Informationen zur Suche nach Reference-type Parametern finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). -1. Der verkettete Suchparameter "encounter.account:identifier" (zur Suche anhand der Abrechnungsfallnummer) MUSS unterstützt werden: - - Beispiele: - - ```GET [base]/DocumentReference?encounter.account:identifier=http://mein-krankenhaus.example/fhir/sid/fallnummern|7567867``` - - ```GET [base]/DocumentReference?encounter.account:identifier=7567867``` - - Anwendungshinweise: Weitere Informationen zur Suche nach Reference-type Parametern, insbesondere in Verbindung mit dem `:identifier`-Modifier finden sich in der [FHIR-Basisspezifikation - Abschnitt "Reference Search"](https://www.hl7.org/fhir/R4/search.html#reference). - - Weitere Informationen zur Suche nach verketteten Parametern finden sich in der [FHIR-Basisspezifikation - Abschnitt "Chained Parameters"](https://hl7.org/fhir/R4/search.html#chaining). diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 6c619cb2..444da899 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -6,6 +6,12 @@ Die erste Ziffer X bezeichnet ein Major-Release und regelt die Gültigkeit von R Offene Punkte und bekannte Probleme siehe [GitHub Issues](https://github.com/gematik/ISiK-Dokumentenaustausch/issues?q=is%3Aissue+is%3Aopen+label%3A%22offene+Punkte+Ballot%22) +Version: 3.0.1 + +Datum: WIP + +* tbd. Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert +---- Version: 3.0.0 Datum: 01.07.2023 diff --git a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh index 564eb94a..987d7a7e 100644 --- a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh +++ b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh @@ -85,7 +85,9 @@ In MHD 4.2.0 wurde die Verpflichtung zur Angabe eines Identifiers gelockert, das * subject only Reference(Patient) * subject 1..1 MS * ^short = "Patientenbezug des Dokumentes" - * ^comment = "Siehe Beschreibung in der [FHIR Kernspezifikation](http://hl7.org/fhir/documentreference-definitions.html#DocumentReference.subject)" + * ^comment = "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein. + + Für sonstige Kontexte siehe [FHIR Kernspezifikation](http://hl7.org/fhir/documentreference-definitions.html#DocumentReference.subject)" * reference 1..1 MS * reference 1..1 MS * ^short = "Absolute oder relative URL des Patienten auf dem Server" @@ -144,6 +146,8 @@ Ressource ausgelagert und über Attachment.url referenziert werden." * ^short = "Referenz auf Dokument" * ^comment = "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, sondern müssen als separates Datenobjekt referenziert werden. + +Wird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein. Update für Stufe 3: Die Ausnahme bildet die Interaktion "Dokumentenbereitstellung", @@ -164,6 +168,8 @@ Ressource ausgelagert und über Attachment.url referenziert werden." * context 1.. MS * encounter ..1 MS * ^comment = "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt. + + Wird ein Encounter im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKKontaktGesundheitseinrichtung](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung) aus dem Basismodul sein. Update für Stufe 3: In MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD. " diff --git a/Resources/input/fsh/capabilitystatement.fsh b/Resources/input/fsh/capabilitystatement.fsh index c5377e9c..1be9361e 100644 --- a/Resources/input/fsh/capabilitystatement.fsh +++ b/Resources/input/fsh/capabilitystatement.fsh @@ -20,46 +20,7 @@ Usage: #definition * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * extension.valueCode = #SHALL * code = #read - * interaction[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * code = #search-type - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "_id" - * definition = "http://hl7.org/fhir/SearchParameter/Resource-id" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "identifier" - * definition = "http://hl7.org/fhir/SearchParameter/Patient-identifier" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "family" - * definition = "http://hl7.org/fhir/SearchParameter/individual-family" - * type = #string - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "given" - * definition = "http://hl7.org/fhir/SearchParameter/individual-given" - * type = #string - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "birthdate" - * definition = "http://hl7.org/fhir/SearchParameter/individual-birthdate" - * type = #date - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "gender" - * definition = "http://hl7.org/fhir/SearchParameter/individual-gender" - * type = #token + * rest.resource[+] * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * extension.valueCode = #SHALL @@ -69,58 +30,6 @@ Usage: #definition * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * extension.valueCode = #SHALL * code = #read - * interaction[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * code = #search-type - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "_id" - * definition = "http://hl7.org/fhir/SearchParameter/Resource-id" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "identifier" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-identifier" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "status" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-status" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "class" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-class" - * type = #token - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "type" - * definition = "http://hl7.org/fhir/SearchParameter/clinical-patient" - * type = #reference - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "subject" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-subject" - * type = #reference - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "part-of" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-part-of" - * type = #reference - * searchParam[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * name = "date" - * definition = "http://hl7.org/fhir/SearchParameter/Encounter-date" - * type = #date * rest.resource[+] * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * extension.valueCode = #SHALL From 41294aed9d19fc38224c3ee4239a26509b3b756f Mon Sep 17 00:00:00 2001 From: Francois Peverali Date: Mon, 11 Dec 2023 14:44:33 +0100 Subject: [PATCH 07/20] update dependency Basismodul --- ImplementationGuide/markdown/ReleaseNotes.md | 1 + Resources/sushi-config.yaml | 2 +- package.json | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 444da899..fb5b42af 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -11,6 +11,7 @@ Version: 3.0.1 Datum: WIP * tbd. Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert +* Update Dependency zu Basismodul (Technical Correction 3.0.1) ---- Version: 3.0.0 diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index 3447b7c1..7c094add 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -13,6 +13,6 @@ publisher: url: https://gematik.de dependencies: ihe.iti.mhd: 4.2.0 - de.gematik.isik-basismodul: 3.0.0 + de.gematik.isik-basismodul: 3.0.1 dvmd.kdl.r4.2022: 2022.1.2 FSHOnly: true diff --git a/package.json b/package.json index 2d80c5f1..312c1a1a 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ ], "dependencies": { "ihe.iti.mhd": "4.2.0", - "de.gematik.isik-basismodul": "3.0.0", + "de.gematik.isik-basismodul": "3.0.1", "dvmd.kdl.r4.2022": "2022.1.2" } } From 2d0ce2bd6cde713cfebe2621a93664dea67176c1 Mon Sep 17 00:00:00 2001 From: f-peverali <112709306+f-peverali@users.noreply.github.com> Date: Fri, 15 Dec 2023 10:33:22 +0100 Subject: [PATCH 08/20] rm redundant requirement --- ImplementationGuide/markdown/Datenobjekte.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImplementationGuide/markdown/Datenobjekte.md b/ImplementationGuide/markdown/Datenobjekte.md index 892540b2..21d4c5bb 100644 --- a/ImplementationGuide/markdown/Datenobjekte.md +++ b/ImplementationGuide/markdown/Datenobjekte.md @@ -7,7 +7,7 @@ Folgende Datenobjekte aus dem Modul [ISiK Basis Stufe 3](https://simplifier.net/ Die Verwendung in diesem Modul bedeutet: Wenn dieses Modul auf Datenobjekte aus dem Basismodul referenziert, dann MÜSSEN die referenzierten FHIR-Ressourcen konform zu den Vorgaben aus dem Basismodul sein. -Die Referenzierung von im Basismodul spezifizierten Datenobjekten, bedeutet nicht, dass die Interaktionen für die entsprechenden Datenobjekte aus dem Basismodul auch im Modul Dokumentenaustausch bestätigungsrelevant sind. Ein bestätigungsrelevantes System MUSS sicherstellen, dass die Referenzen auflösbar sind. +Die Referenzierung von im Basismodul spezifizierten Datenobjekten, bedeutet nicht, dass die Interaktionen für die entsprechenden Datenobjekte aus dem Basismodul auch im Modul Dokumentenaustausch bestätigungsrelevant sind. Darüber hinaus gelten in diesem Modul folgende Datenobjekt-spezifische Festlegungen: From cc6972d2b8d6c2808898a9218f0c67fd4521204e Mon Sep 17 00:00:00 2001 From: Francois Peverali Date: Fri, 15 Dec 2023 10:44:05 +0100 Subject: [PATCH 09/20] rm all interaction on Encounter + Patient in CpS --- ImplementationGuide/markdown/DecisionLog.md | 5 +++++ Resources/input/fsh/capabilitystatement.fsh | 18 ------------------ 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/ImplementationGuide/markdown/DecisionLog.md b/ImplementationGuide/markdown/DecisionLog.md index 6ab7096d..64c2f15d 100644 --- a/ImplementationGuide/markdown/DecisionLog.md +++ b/ImplementationGuide/markdown/DecisionLog.md @@ -3,6 +3,11 @@ ---- Version: 3.0.1 +Datum 15.12.2023 + +* Problem: Die DMS müssen keine Patienten- und Encounterabfragen unterstützen können, + * Lösung: Es werden entsprechende Interaktionen aus dem CapabilityStatement entfernt + Datum: 11.12.2023 * Problem: Für das Modul Dokumentenaustausch sind die Abhängigkeit der Referenzierten Ressourcen Encounter und Patient zum ISIK Basismodul nicht klar herausgearbeitet. diff --git a/Resources/input/fsh/capabilitystatement.fsh b/Resources/input/fsh/capabilitystatement.fsh index 1be9361e..a29d87fd 100644 --- a/Resources/input/fsh/capabilitystatement.fsh +++ b/Resources/input/fsh/capabilitystatement.fsh @@ -11,25 +11,7 @@ Usage: #definition * format[0] = #application/fhir+xml * format[+] = #application/fhir+json * rest.mode = #server -* rest.resource[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * type = #Patient - * supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" - * interaction[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * code = #read -* rest.resource[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * type = #Encounter - * supportedProfile = "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" - * interaction[+] - * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" - * extension.valueCode = #SHALL - * code = #read * rest.resource[+] * extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" * extension.valueCode = #SHALL From 980c31b948e7eba19363bd8d54ea38d3fb2722cb Mon Sep 17 00:00:00 2001 From: Alexander Zautke Date: Fri, 15 Dec 2023 10:55:47 +0100 Subject: [PATCH 10/20] Update ImplementationGuide/markdown/DecisionLog.md --- ImplementationGuide/markdown/DecisionLog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ImplementationGuide/markdown/DecisionLog.md b/ImplementationGuide/markdown/DecisionLog.md index 64c2f15d..a3abb4b0 100644 --- a/ImplementationGuide/markdown/DecisionLog.md +++ b/ImplementationGuide/markdown/DecisionLog.md @@ -5,7 +5,7 @@ Version: 3.0.1 Datum 15.12.2023 -* Problem: Die DMS müssen keine Patienten- und Encounterabfragen unterstützen können, +* Problem: Die DMS müssen keine Patienten- und Encounterabfragen unterstützen können. * Lösung: Es werden entsprechende Interaktionen aus dem CapabilityStatement entfernt Datum: 11.12.2023 From 5bb78ffefa180469d17068f35a06adccd415b33b Mon Sep 17 00:00:00 2001 From: ylboerner Date: Tue, 19 Dec 2023 09:55:35 +0000 Subject: [PATCH 11/20] Commit from GitHub Actions (CI (FHIR Validation)) --- .../Bundle-Suchergebnis-Beispiel.json | 4 +- ...yStatement-dokumentenaustausch-server.json | 222 ------------------ ...DocumentReference-dok-beispiel-server.json | 4 +- ...ureDefinition-ISiKDokumentenMetadaten.json | 6 +- 4 files changed, 7 insertions(+), 229 deletions(-) diff --git a/Resources/fsh-generated/resources/Bundle-Suchergebnis-Beispiel.json b/Resources/fsh-generated/resources/Bundle-Suchergebnis-Beispiel.json index 73682045..772bba10 100644 --- a/Resources/fsh-generated/resources/Bundle-Suchergebnis-Beispiel.json +++ b/Resources/fsh-generated/resources/Bundle-Suchergebnis-Beispiel.json @@ -97,8 +97,8 @@ "practiceSetting": { "coding": [ { - "code": "408467006", - "system": "http://snomed.info/sct" + "code": "ALLG", + "system": "http://ihe-d.de/CodeSystems/AerztlicheFachrichtungen" } ] }, diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json index d428e7d5..84aee6e9 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json @@ -34,228 +34,6 @@ { "mode": "server", "resource": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "type": "Patient", - "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient" - ], - "interaction": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "read" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "search-type" - } - ], - "searchParam": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "_id", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-id", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "identifier", - "definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "family", - "definition": "http://hl7.org/fhir/SearchParameter/individual-family", - "type": "string" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "given", - "definition": "http://hl7.org/fhir/SearchParameter/individual-given", - "type": "string" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "birthdate", - "definition": "http://hl7.org/fhir/SearchParameter/individual-birthdate", - "type": "date" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "gender", - "definition": "http://hl7.org/fhir/SearchParameter/individual-gender", - "type": "token" - } - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "type": "Encounter", - "supportedProfile": [ - "https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung" - ], - "interaction": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "read" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "search-type" - } - ], - "searchParam": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "_id", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-id", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "identifier", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-identifier", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "status", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-status", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "class", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-class", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "type", - "definition": "http://hl7.org/fhir/SearchParameter/clinical-patient", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "subject", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-subject", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "part-of", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-part-of", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "date", - "definition": "http://hl7.org/fhir/SearchParameter/Encounter-date", - "type": "date" - } - ] - }, { "extension": [ { diff --git a/Resources/fsh-generated/resources/DocumentReference-dok-beispiel-server.json b/Resources/fsh-generated/resources/DocumentReference-dok-beispiel-server.json index 88df03a6..0323957f 100644 --- a/Resources/fsh-generated/resources/DocumentReference-dok-beispiel-server.json +++ b/Resources/fsh-generated/resources/DocumentReference-dok-beispiel-server.json @@ -84,8 +84,8 @@ "practiceSetting": { "coding": [ { - "code": "408467006", - "system": "http://snomed.info/sct" + "code": "ALLG", + "system": "http://ihe-d.de/CodeSystems/AerztlicheFachrichtungen" } ] }, diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index 34877b00..2a1730a5 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -282,7 +282,7 @@ "id": "DocumentReference.subject", "path": "DocumentReference.subject", "short": "Patientenbezug des Dokumentes", - "comment": "Siehe Beschreibung in der [FHIR Kernspezifikation](http://hl7.org/fhir/documentreference-definitions.html#DocumentReference.subject)", + "comment": "Im ISIK-Kontext MUSS der referenzierte Patient konform zum [ISIKPatient](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKPatient) des Basismoduls sein.\n \n Für sonstige Kontexte siehe [FHIR Kernspezifikation](http://hl7.org/fhir/documentreference-definitions.html#DocumentReference.subject)", "min": 1, "type": [ { @@ -442,7 +442,7 @@ "id": "DocumentReference.content.attachment.url", "path": "DocumentReference.content.attachment.url", "short": "Referenz auf Dokument", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n\nWird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein.\n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true, "mapping": [ { @@ -492,7 +492,7 @@ { "id": "DocumentReference.context.encounter", "path": "DocumentReference.context.encounter", - "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\nUpdate für Stufe 3: \nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n ", + "comment": "Abweichend zu MHD V4.0.1 ist die Verwendung der Encounter-Referenz im ISiK-Kontext erlaubt.\n\n Wird ein Encounter im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKKontaktGesundheitseinrichtung](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKKontaktGesundheitseinrichtung) aus dem Basismodul sein. \nUpdate für Stufe 3: \nIn MHD 4.2.0 wurde das Verbot der Angabe einer Encounter-Referenz gelockert, das ISiK-Profil ist damit in diesem Punkt wieder kompatibel zu IHE MHD.\n ", "max": "1", "mustSupport": true, "mapping": [ From f4b6e6dab203640f9603a074115d4ea85c10e369 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20B=C3=B6rner?= Date: Tue, 19 Dec 2023 11:00:50 +0100 Subject: [PATCH 12/20] fix: Revert date change --- Resources/input/fsh/rulesets.fsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/input/fsh/rulesets.fsh b/Resources/input/fsh/rulesets.fsh index adc13cfa..c5dae8b9 100644 --- a/Resources/input/fsh/rulesets.fsh +++ b/Resources/input/fsh/rulesets.fsh @@ -3,18 +3,18 @@ RuleSet: Meta * ^status = #active * ^experimental = false * ^publisher = "gematik GmbH" -* ^date = "2023-11-28" +* ^date = "2023-07-01" RuleSet: Meta-Inst * status = #active * publisher = "gematik GmbH" -* date = "2023-11-28" +* date = "2023-07-01" RuleSet: Meta-CapabilityStatement * status = #active * experimental = false * version = "3.0.0" * publisher = "gematik GmbH" -* date = "2023-11-28" +* date = "2023-07-01" * implementationGuide = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" * url = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/CapabilityStatement/dokumentenaustausch-server" From 16ffe912648dd0c9818f382df0852ca5136d4c00 Mon Sep 17 00:00:00 2001 From: ylboerner Date: Tue, 19 Dec 2023 10:16:51 +0000 Subject: [PATCH 13/20] Commit from GitHub Actions (CI (FHIR Validation)) --- ...ent-ISiK-capabilityStatement-dokumentenaustausch-server.json | 2 +- .../resources/OperationDefinition-UpdateMetadata.json | 2 +- .../resources/StructureDefinition-ISiKDokumentenMetadaten.json | 2 +- .../StructureDefinition-ISiKDokumentenSuchergebnisse.json | 2 +- .../resources/ValueSet-ISiKConfidentialityCodes.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json index 84aee6e9..8602fcaf 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json @@ -6,7 +6,7 @@ "experimental": false, "version": "3.0.0", "publisher": "gematik GmbH", - "date": "2023-11-28", + "date": "2023-07-01", "implementationGuide": [ "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" ], diff --git a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json index 0a4b2e5f..b7841675 100644 --- a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json +++ b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json @@ -3,7 +3,7 @@ "id": "UpdateMetadata", "status": "active", "publisher": "gematik GmbH", - "date": "2023-11-28", + "date": "2023-07-01", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/OperationDefinition/UpdateMetadata", "title": "Update document metadata", "kind": "operation", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index 2a1730a5..77423372 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -7,7 +7,7 @@ "title": "Erforderliche Metadaten für Dokumentenaustausch in ISiK", "status": "active", "experimental": false, - "date": "2023-11-28", + "date": "2023-07-01", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json index b32defab..2195f252 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json @@ -7,7 +7,7 @@ "title": "Suchergebnisse einer Dokumentensuche", "status": "active", "experimental": false, - "date": "2023-11-28", + "date": "2023-07-01", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json index 0377ae5d..1ad59ac9 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json @@ -9,7 +9,7 @@ "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", "experimental": false, "publisher": "gematik GmbH", - "date": "2023-11-28", + "date": "2023-07-01", "compose": { "include": [ { From 0cf36820002e9ea3e27dd3205972e553dea71b90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yannick=20B=C3=B6rner?= Date: Tue, 19 Dec 2023 11:53:35 +0100 Subject: [PATCH 14/20] feat: Bump versions --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b344b293..2fbfb8cc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,7 +27,7 @@ jobs: # Java and .NET are already installed on ubuntu-latest - name: Firely.Terminal (GitHub Actions) - uses: FirelyTeam/firely-terminal-pipeline@v0.3.5 + uses: FirelyTeam/firely-terminal-pipeline@v0.4.0 with: PATH_TO_CONFORMANCE_RESOURCES: Resources/fsh-generated/resources/ #PATH_TO_EXAMPLES: Examples @@ -40,7 +40,7 @@ jobs: SIMPLIFIER_PASSWORD: ${{ secrets.SIMPLIFIER_PASSWORD }} SUSHI_ENABLED: true SUSHI_OPTIONS: Resources/ - SUSHI_VERSION: 2.10.2 + SUSHI_VERSION: 3.5.0 EXPECTED_FAILS: VALIDATION_CONFORMANCE_DOTNET VALIDATION_CONFORMANCE_JAVA VALIDATION_EXAMPLES_JAVA - name: Add & Commit From ac9412ce37a17f1626b648f5b7bb46f4817743c6 Mon Sep 17 00:00:00 2001 From: ylboerner Date: Tue, 19 Dec 2023 10:55:47 +0000 Subject: [PATCH 15/20] Commit from GitHub Actions (CI (FHIR Validation)) --- .../resources/ValueSet-ISiKConfidentialityCodes.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json index 1ad59ac9..f767d644 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json @@ -5,8 +5,8 @@ "id": "ISiKConfidentialityCodes", "title": "ISiKConfidentialityCodes", "description": "Vertraulichkeitsstufen", - "version": "3.0.0", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", + "version": "3.0.0", "experimental": false, "publisher": "gematik GmbH", "date": "2023-07-01", From 0db588ffab7d910c9c2aec97d5c5c9e69c5b45f3 Mon Sep 17 00:00:00 2001 From: f-peverali Date: Wed, 3 Jan 2024 14:13:59 +0100 Subject: [PATCH 16/20] update releasenotes --- ImplementationGuide/markdown/ReleaseNotes.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index fb5b42af..0ad188be 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -8,10 +8,14 @@ Offene Punkte und bekannte Probleme siehe [GitHub Issues](https://github.com/gem Version: 3.0.1 -Datum: WIP +Datum: 03.01.2024 -* tbd. Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert * Update Dependency zu Basismodul (Technical Correction 3.0.1) +* Nutzung der ISiKBinary präzisiert und im CapapabilityStatement entsprechend korrigiert: add CpS statement and reference regarding ISIK binary PTDATA-605 by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/157 +* Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert: Feature/ptdata 773 anforderungen anpassen basis ressourcen by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/163 +* rm all interaction on Encounter + Patient in CpS by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/165 + + ---- Version: 3.0.0 From a7652c1dab7c6f09da8dfd499ca8d8606a60fb5d Mon Sep 17 00:00:00 2001 From: f-peverali Date: Wed, 3 Jan 2024 15:03:06 +0100 Subject: [PATCH 17/20] update version and update script --- ImplementationGuide/markdown/Einfuehrung.md | 4 +- package.json | 2 +- scripts/config.yaml | 26 +++ scripts/release_publish.py | 182 +++++++++----------- scripts/update_version.sh | 13 -- 5 files changed, 115 insertions(+), 112 deletions(-) create mode 100644 scripts/config.yaml delete mode 100644 scripts/update_version.sh diff --git a/ImplementationGuide/markdown/Einfuehrung.md b/ImplementationGuide/markdown/Einfuehrung.md index a649d553..0d8cae6c 100644 --- a/ImplementationGuide/markdown/Einfuehrung.md +++ b/ImplementationGuide/markdown/Einfuehrung.md @@ -1,9 +1,9 @@ gematik logo ---- -Version: 3.0.0 +Version: 3.0.1 -Datum: 1.7.2023 +Datum: 03.01.2024 Status: Aktiv diff --git a/package.json b/package.json index 312c1a1a..c46b9179 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "de.gematik.isik-basismodul-dokumentenaustausch", - "version": "3.0.0", + "version": "3.0.1", "fhirVersions": [ "4.0.1" ], diff --git a/scripts/config.yaml b/scripts/config.yaml new file mode 100644 index 00000000..ab23a178 --- /dev/null +++ b/scripts/config.yaml @@ -0,0 +1,26 @@ +package.json: + - type: version + regex: '("version":\s*")([\d\.]+.*)(")' +sushi-config.yaml: + - type: version + regex: '(version:\s*)(\d+\.\d+\.\d+.*)()' +ruleset.fsh: + - type: version + regex: + - '(\*\s*version\s*=\s*")([\d\.]+.*)(")' + - '(\*\s*\^version\s*=\s*")([\d\.]+.*)(")' + - '(\*\s*implementationGuide\s*=\s*".*\|)([\d\.]+.*)(")' + - type: date + regex: + - '(\*\s*date\s*=\s*")(\d+\-\d+\-\d+)(")' + - '(\*\s*\^date\s*=\s*")(\d+\-\d+\-\d+)(")' + format: '%Y-%m-%d' +Einfuehrung.md: + - type: version + regex: '(Version: \s*)(\d+\.\d+\.\d+.*)()' + - type: date + regex: '(Datum:\s*)(\d+\.\d+\.\d+.*)()' + format: '%d.%m.%Y' +ImplementierungsleitfadenIsiK_basismodul.json: + - type: version + regex: '("version":\s*")(\d+\.\d+\.\d+.*)(",)' \ No newline at end of file diff --git a/scripts/release_publish.py b/scripts/release_publish.py index 9195808f..86adfa52 100644 --- a/scripts/release_publish.py +++ b/scripts/release_publish.py @@ -1,124 +1,104 @@ +import datetime import re import subprocess import os import argparse from datetime import date +import yaml -class FileWithVersionToUpdate: - def __init__(self, filename, version_regex) -> None: - self.filename = filename - self.version_regex = version_regex - self.location = None - - def set_file_location(self, location): - self.location = location -class FileWithDateToUpdate: - def __init__(self, filename, date_regex) -> None: +class FileTypeCombinationToUpdate: + def __init__(self, filename, content_type, regex_list, format=None) -> None: self.filename = filename - self.date_regex = date_regex + self.content_type = content_type + self.regex_list = regex_list + self.format = format self.location = None def set_file_location(self, location): self.location = location -# class FileWithDateToUpdate: -# def __init__(self, filename, date_regex, format) -> None: -# self.filename = filename -# self.date_regex = date_regex -# self.location = None -# self.format = format -# def set_file_location(self, location): -# self.location = location - - +def load_config_file(config_file_path): + with open(config_file_path, 'r') as config_file: + return yaml.safe_load(config_file) def get_new_release_version_from_branch_name() -> str: git_branch = subprocess.check_output(['git', 'rev-parse', '--abbrev-ref', 'HEAD']).strip().decode() return git_branch -def replace_version_in_files(files : list, new_release_version: str): - if files is None: - print("Error: No Files found!") - return - for file in files: - replace_version_in_file(file,new_release_version) +def create_files_to_update_list(config): + files_to_update = [] + for filename, replacements in config.items(): + for replacement in replacements: + files_to_update.append( + FileTypeCombinationToUpdate( + filename, + replacement["type"], + replacement["regex"] if isinstance(replacement["regex"], list) else [replacement["regex"]], + replacement.get("format", None), + ) + ) + return files_to_update -def replace_version_in_file(file: FileWithVersionToUpdate,new_release_version: str): - with open(file.location, 'r') as input_file: - input_text = input_file.read() - output_text = re.sub(file.version_regex, rf'\g<1>{new_release_version}\g<3>', input_text) - print(f"Info: Replaced version with '{new_release_version}' in file '{file.location}'.") +def locate_files_in_current_project(files: list): + located_files = [] + for current_file in files: + file_location = find_file(current_file.filename, ".") + if file_location is not None: + current_file.set_file_location(file_location) + located_files.append(current_file) + else: + print(f"Warning: File '{current_file.filename}' not found.") + return located_files - with open(file.location, 'w') as output_file: - output_file.write(output_text) -def replace_date_in_files(files : list, new_release_date: str): +def find_file(name, path="."): + for root, dirs, files in os.walk(path): + if name in files: + print(f"Info: Found '{name}' in {root}.") + return os.path.join(root, name) + return None + + +def replace_content_in_files(files: list, new_release_version: str, new_date: datetime): if files is None: - print("Error: No Files found!") + print("Error: No files found!") return - for file in files: - replace_date_in_file(file,new_release_date) + for FileTypeCombination in files: + if FileTypeCombination.content_type == "version": + replace_version_in_file(FileTypeCombination, new_release_version) + elif FileTypeCombination.content_type == "date": + replace_date_in_file(FileTypeCombination, new_date) + -def replace_date_in_file(file: FileWithVersionToUpdate, new_date: str): +def replace_version_in_file(file: FileTypeCombinationToUpdate, new_release_version: str): with open(file.location, 'r') as input_file: input_text = input_file.read() - #output_text = re.sub(file.date_regex, rf'\g<1>{new_date.strftime(file.format)}\g<3>', input_text) #see https://www.programiz.com/python-programming/datetime#:~:text=Python%20format%20datetime&text=It%27s%20more%20common%20to%20use,()%20methods%20to%20handle%20this. - output_text = re.sub(file.date_regex, rf'\g<1>{new_date}\g<3>', input_text) - print(f"Info: Replaced date with '{new_date}' in file '{file.location}'.") + for regex in file.regex_list: + input_text = re.sub(regex, rf'\g<1>{new_release_version}\g<3>', input_text) + + print(f"Info: Replaced version with '{new_release_version}' in file '{file.location}'.") with open(file.location, 'w') as output_file: - output_file.write(output_text) - -def get_file_to_update_version_list(): - file_list = [] - file_list.append(FileWithVersionToUpdate('package.json', r'("version":\s*")([\d\.]+.*)(")')) - file_list.append(FileWithVersionToUpdate('sushi-config.yaml', r'(version:\s*")(\d+\.\d+\.\d+.*)(")')) - file_list.append(FileWithVersionToUpdate('ruleset.fsh', r'(\*\s*version\s*=\s*")([\d\.]+.*)(")')) - file_list.append(FileWithVersionToUpdate('Einfuehrung.md', r'(Version: \s*)(\d+\.\d+\.\d+.*)()')) - return file_list - -def get_file_to_update_date_list(): - file_list = [] - #file_list.append(FileWithDateToUpdate('ruleset.fsh', r'(date\s*=\s*")(\d+\-\d+\-\d+)(")'), '%m/%d/%Y' ) - #file_list.append(FileWithDateToUpdate('Einfuehrung.md', r'(Datum: \s*)(\d+\.\d+\.\d+)()') , '%m/%d/%Y') - file_list.append(FileWithDateToUpdate('ruleset.fsh', r'(\*\s*date\s*=\s*")(\d+\-\d+\-\d+)(")')) - file_list.append(FileWithDateToUpdate('ruleset.fsh', r'(\*\s*\^date\s*=\s*")(\d+\-\d+\-\d+)(")')) - file_list.append(FileWithDateToUpdate('Einfuehrung.md', r'(Datum:\s*)(\d+\.\d+\.\d+.*)()')) - return file_list + output_file.write(input_text) -def locate_files_in_current_project(files: list): - return_list = [] - for current_file in files: - file_location = find_file(current_file.filename, ".") - if file_location is not None: - current_file.set_file_location(file_location) - return_list.append(current_file) - else: - print(f"Warning: File '{current_file.filename}' not found.") - return return_list +def replace_date_in_file(file: FileTypeCombinationToUpdate, new_date: datetime): + with open(file.location, 'r') as input_file: + input_text = input_file.read() -def find_file(name, path="."): - for root, dirs, files in os.walk(path): + for regex in file.regex_list: + input_text = re.sub(regex, rf'\g<1>{new_date.strftime(file.format)}\g<3>', input_text) - if name in files: - print(f"Info: Found '{name}' in {root}.") - return os.path.join(root, name) - return None + print(f"Info: Replaced date with '{new_date.strftime(file.format)}' in file '{file.location}'.") -def get_latest_release_tag(): - cmd = 'git describe --abbrev=0 --tags --match "v*.*.*" HEAD' - try: - output = subprocess.check_output(cmd, shell=True) - return output.decode().strip() - except subprocess.CalledProcessError: - return None + with open(file.location, 'w') as output_file: + output_file.write(input_text) def output_commit_messages_since_last_release(): latest_release_tag = get_latest_release_tag() @@ -133,15 +113,22 @@ def output_commit_messages_since_last_release(): except subprocess.CalledProcessError: print("Warning: Failed to get commit messages.") -def main(): - today = date.today() +def get_latest_release_tag(): + cmd = 'git describe --abbrev=0 --tags --match "v*.*.*" HEAD' + try: + output = subprocess.check_output(cmd, shell=True) + return output.decode().strip() + except subprocess.CalledProcessError: + return None - parser = argparse.ArgumentParser(description='Update release version number') + +def main(): + parser = argparse.ArgumentParser(description='Update release version number and date') parser.add_argument('-b', '--branch', action='store_true', help='get new version from branch name') parser.add_argument('-v', '--version', type=str, help='specify new version number') + parser.add_argument('-d', '--date', type=str, help='specify custom date for release') + parser.add_argument('-c', '--config', type=str, default='config.yaml', help='specify config file') parser.add_argument('-o', '--output', action='store_true', help='output commit messages since last release') - # TODO new argument -d if not date_time now - args = parser.parse_args() if args.version: @@ -151,16 +138,19 @@ def main(): else: parser.error('No new release version specified. Please use either -v or -b to specify the new release version.') - if args.output: - output_commit_messages_since_last_release() + if args.date: + custom_date = datetime.datetime.strptime(args.date, '%d.%m.%Y').date() + else: + custom_date = date.today() - file_to_update_version_list = get_file_to_update_version_list() - file_version_list = locate_files_in_current_project(file_to_update_version_list) - replace_version_in_files(file_version_list, new_release_version) + config_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), args.config) + config = load_config_file(config_file_path) + files_to_update = create_files_to_update_list(config) + located_files = locate_files_in_current_project(files_to_update) + replace_content_in_files(located_files, new_release_version, custom_date) - file_to_update_date_list = get_file_to_update_date_list() - file_date_list = locate_files_in_current_project(file_to_update_date_list) - replace_date_in_files(file_date_list, today) + if args.output: + output_commit_messages_since_last_release() if __name__ == "__main__": main() \ No newline at end of file diff --git a/scripts/update_version.sh b/scripts/update_version.sh deleted file mode 100644 index 2cbe628d..00000000 --- a/scripts/update_version.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -clear -# This script will download the latest validation script from the template source save it -# to the scripts_folder and execute it to validate your fhir ressources. -script_name=release_publish.py -script_path=. - -#parentdir="$(dirname "$script_path")" -#mkdir -p "$parentdir" - -curl https://raw.githubusercontent.com/gematik/spec-TemplateForSimplifierProjects/feature/release_publish/scripts/$script_name -o $script_path -chmod a+x $script_path -python3 $script_name \ No newline at end of file From 9bd94c44da2e69ed354106fbe44e12abd9680181 Mon Sep 17 00:00:00 2001 From: f-peverali <112709306+f-peverali@users.noreply.github.com> Date: Fri, 5 Jan 2024 10:10:57 +0100 Subject: [PATCH 18/20] Feature/add binary page (#168) * add binary page * fix page context * fix tpo * fix typo --- .../ImplementierungsleitfadenIsiK_Dokumentenaustausch.json | 5 +++++ ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md | 7 +++++++ ImplementationGuide/markdown/ReleaseNotes.md | 2 +- .../StructureDefinition-ISiKDokumentenMetadaten.json | 2 +- Resources/input/fsh/ISiKDokumentenMetadaten.fsh | 2 +- 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md diff --git a/ImplementationGuide/ImplementierungsleitfadenIsiK_Dokumentenaustausch.json b/ImplementationGuide/ImplementierungsleitfadenIsiK_Dokumentenaustausch.json index bf3d1e95..0118d698 100644 --- a/ImplementationGuide/ImplementierungsleitfadenIsiK_Dokumentenaustausch.json +++ b/ImplementationGuide/ImplementierungsleitfadenIsiK_Dokumentenaustausch.json @@ -157,6 +157,11 @@ "generation": "markdown" } ] + }, + { + "nameUrl": "ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md", + "title": "ISiKBinary", + "generation": "markdown" } ] } diff --git a/ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md b/ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md new file mode 100644 index 00000000..ac14d2ad --- /dev/null +++ b/ImplementationGuide/markdown/Datenobjekte_ISiKBinary.md @@ -0,0 +1,7 @@ +## ISiKBinary [(Binary)](https://hl7.org/fhir/R4/binary.html) + +ISiKBinary dient im Kontext des Dokumentenaustauschs dazu entsprechende Binärdateien über einen Dokumentenserver bereitzustellen (siehe {{pagelink:ImplementationGuide/markdown/AkteureUndInteraktionen-Dokumentenabfrage.md, text:Akteure und Interaktionen}}). + +### FHIR-Profil + +Es gelten bis auf weiteres die Vorgaben des ISiK Basismoduls für das Profil ['ISiKBinary'](https://simplifier.net/guide/Implementierungsleitfaden-ISiK-Basismodul-Stufe-3/ImplementationGuide-markdown-Datenobjekte-Datenobjekte-Binary?version=current). \ No newline at end of file diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 0ad188be..5d9789d2 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -11,7 +11,7 @@ Version: 3.0.1 Datum: 03.01.2024 * Update Dependency zu Basismodul (Technical Correction 3.0.1) -* Nutzung der ISiKBinary präzisiert und im CapapabilityStatement entsprechend korrigiert: add CpS statement and reference regarding ISIK binary PTDATA-605 by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/157 +* Nutzung der ISiKBinary präzisiert und im CapabilityStatement entsprechend korrigiert: add CpS statement and reference regarding ISIK binary PTDATA-605 by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/157 * Anforderungen zur Nutzung der Ressourcen aus ISIK Basismodul präzisiert: Feature/ptdata 773 anforderungen anpassen basis ressourcen by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/163 * rm all interaction on Encounter + Patient in CpS by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/165 diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index 77423372..8a639d23 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -442,7 +442,7 @@ "id": "DocumentReference.content.attachment.url", "path": "DocumentReference.content.attachment.url", "short": "Referenz auf Dokument", - "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n\nWird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein.\n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", + "comment": "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, \n sondern müssen als separates Datenobjekt referenziert werden. \n\nWird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieses konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein.\n \nUpdate für Stufe 3:\nDie Ausnahme bildet die Interaktion "Dokumentenbereitstellung", \nbei der die Binärdaten des Dokumentes eingebettet in die DocumentReference an den Server übermittelt und dort dann in eine separate \nRessource ausgelagert und über Attachment.url referenziert werden.", "mustSupport": true, "mapping": [ { diff --git a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh index 8bffd40a..868abcc3 100644 --- a/Resources/input/fsh/ISiKDokumentenMetadaten.fsh +++ b/Resources/input/fsh/ISiKDokumentenMetadaten.fsh @@ -147,7 +147,7 @@ Ressource ausgelagert und über Attachment.url referenziert werden." * ^comment = "Um die Suche nach Dokumenten effizient zu gestalten, dürfen die Dokumente selbst nicht in die DocumentReference eingebettet werden, sondern müssen als separates Datenobjekt referenziert werden. -Wird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieser konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein. +Wird ein separates Datenobjekt im ISIK-Kontext referenziert, so MUSS dieses konform zum Profil [ISIKBinary](https://gematik.de/fhir/isik/v3/Basismodul/StructureDefinition/ISiKBinary) aus dem Basismodul sein. Update für Stufe 3: Die Ausnahme bildet die Interaktion "Dokumentenbereitstellung", From f15c4fd815496fc7ffa31e05b0cf3a8b045b2696 Mon Sep 17 00:00:00 2001 From: f-peverali Date: Fri, 5 Jan 2024 15:30:37 +0100 Subject: [PATCH 19/20] fix typo naming + update version --- ImplementationGuide/markdown/Einfuehrung.md | 2 +- ImplementationGuide/markdown/ReleaseNotes.md | 2 +- .../input/fsh/{rulesets.fsh => ruleset.fsh} | 40 +++++++++---------- scripts/config.yaml | 2 +- 4 files changed, 23 insertions(+), 23 deletions(-) rename Resources/input/fsh/{rulesets.fsh => ruleset.fsh} (72%) diff --git a/ImplementationGuide/markdown/Einfuehrung.md b/ImplementationGuide/markdown/Einfuehrung.md index 0d8cae6c..70cdf99c 100644 --- a/ImplementationGuide/markdown/Einfuehrung.md +++ b/ImplementationGuide/markdown/Einfuehrung.md @@ -3,7 +3,7 @@ ---- Version: 3.0.1 -Datum: 03.01.2024 +Datum: 05.01.2024 Status: Aktiv diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 5d9789d2..cd98b51f 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -8,7 +8,7 @@ Offene Punkte und bekannte Probleme siehe [GitHub Issues](https://github.com/gem Version: 3.0.1 -Datum: 03.01.2024 +Datum: 05.01.2024 * Update Dependency zu Basismodul (Technical Correction 3.0.1) * Nutzung der ISiKBinary präzisiert und im CapabilityStatement entsprechend korrigiert: add CpS statement and reference regarding ISIK binary PTDATA-605 by @f-peverali in https://github.com/gematik/spec-ISiK-Dokumentenaustausch/pull/157 diff --git a/Resources/input/fsh/rulesets.fsh b/Resources/input/fsh/ruleset.fsh similarity index 72% rename from Resources/input/fsh/rulesets.fsh rename to Resources/input/fsh/ruleset.fsh index c5dae8b9..d60af747 100644 --- a/Resources/input/fsh/rulesets.fsh +++ b/Resources/input/fsh/ruleset.fsh @@ -1,20 +1,20 @@ -RuleSet: Meta -* ^version = "3.0.0" -* ^status = #active -* ^experimental = false -* ^publisher = "gematik GmbH" -* ^date = "2023-07-01" - -RuleSet: Meta-Inst -* status = #active -* publisher = "gematik GmbH" -* date = "2023-07-01" - -RuleSet: Meta-CapabilityStatement -* status = #active -* experimental = false -* version = "3.0.0" -* publisher = "gematik GmbH" -* date = "2023-07-01" -* implementationGuide = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" -* url = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/CapabilityStatement/dokumentenaustausch-server" +RuleSet: Meta +* ^version = "3.0.1" +* ^status = #active +* ^experimental = false +* ^publisher = "gematik GmbH" +* ^date = "2024-01-05" + +RuleSet: Meta-Inst +* status = #active +* publisher = "gematik GmbH" +* date = "2024-01-05" + +RuleSet: Meta-CapabilityStatement +* status = #active +* experimental = false +* version = "3.0.1" +* publisher = "gematik GmbH" +* date = "2024-01-05" +* implementationGuide = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.1" +* url = "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/CapabilityStatement/dokumentenaustausch-server" diff --git a/scripts/config.yaml b/scripts/config.yaml index ab23a178..35ac3426 100644 --- a/scripts/config.yaml +++ b/scripts/config.yaml @@ -21,6 +21,6 @@ Einfuehrung.md: - type: date regex: '(Datum:\s*)(\d+\.\d+\.\d+.*)()' format: '%d.%m.%Y' -ImplementierungsleitfadenIsiK_basismodul.json: +ImplementierungsleitfadenIsiK_Dokumentenaustausch.json: - type: version regex: '("version":\s*")(\d+\.\d+\.\d+.*)(",)' \ No newline at end of file From 57dfc402636325f1bd133de405eba2f5ea16a7fd Mon Sep 17 00:00:00 2001 From: f-peverali Date: Fri, 5 Jan 2024 14:32:36 +0000 Subject: [PATCH 20/20] Commit from GitHub Actions (CI (FHIR Validation)) --- ...ISiK-capabilityStatement-dokumentenaustausch-server.json | 6 +++--- .../resources/OperationDefinition-UpdateMetadata.json | 2 +- .../StructureDefinition-ISiKDokumentenMetadaten.json | 4 ++-- .../StructureDefinition-ISiKDokumentenSuchergebnisse.json | 4 ++-- .../resources/ValueSet-ISiKConfidentialityCodes.json | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json index 8602fcaf..c47df5fc 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiK-capabilityStatement-dokumentenaustausch-server.json @@ -4,11 +4,11 @@ "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/CapabilityStatement/dokumentenaustausch-server", "status": "active", "experimental": false, - "version": "3.0.0", + "version": "3.0.1", "publisher": "gematik GmbH", - "date": "2023-07-01", + "date": "2024-01-05", "implementationGuide": [ - "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.0" + "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ImplementationGuide|3.0.1" ], "name": "ISiKCapabilityStatementDokumentenaustauschServer", "title": "ISiK CapabilityStatement Dokumentenaustausch Server", diff --git a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json index b7841675..2cd58bec 100644 --- a/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json +++ b/Resources/fsh-generated/resources/OperationDefinition-UpdateMetadata.json @@ -3,7 +3,7 @@ "id": "UpdateMetadata", "status": "active", "publisher": "gematik GmbH", - "date": "2023-07-01", + "date": "2024-01-05", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/OperationDefinition/UpdateMetadata", "title": "Update document metadata", "kind": "operation", diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json index 8a639d23..4dc5539d 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenMetadaten.json @@ -2,12 +2,12 @@ "resourceType": "StructureDefinition", "id": "ISiKDokumentenMetadaten", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenMetadaten", - "version": "3.0.0", + "version": "3.0.1", "name": "ISiKDokumentenMetadaten", "title": "Erforderliche Metadaten für Dokumentenaustausch in ISiK", "status": "active", "experimental": false, - "date": "2023-07-01", + "date": "2024-01-05", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json index 2195f252..dd6a6637 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKDokumentenSuchergebnisse.json @@ -2,12 +2,12 @@ "resourceType": "StructureDefinition", "id": "ISiKDokumentenSuchergebnisse", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenSuchergebnisse", - "version": "3.0.0", + "version": "3.0.1", "name": "ISiKDokumentenSuchergebnisse", "title": "Suchergebnisse einer Dokumentensuche", "status": "active", "experimental": false, - "date": "2023-07-01", + "date": "2024-01-05", "publisher": "gematik GmbH", "fhirVersion": "4.0.1", "mapping": [ diff --git a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json index f767d644..e2614a75 100644 --- a/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json +++ b/Resources/fsh-generated/resources/ValueSet-ISiKConfidentialityCodes.json @@ -6,10 +6,10 @@ "title": "ISiKConfidentialityCodes", "description": "Vertraulichkeitsstufen", "url": "https://gematik.de/fhir/isik/v3/Dokumentenaustausch/ValueSet/ISiKConfidentialityCodes", - "version": "3.0.0", + "version": "3.0.1", "experimental": false, "publisher": "gematik GmbH", - "date": "2023-07-01", + "date": "2024-01-05", "compose": { "include": [ {