diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 987fa188..ab7e8492 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -3,8 +3,7 @@ FROM mcr.microsoft.com/devcontainers/base:alpine-3.18 # Setzen der Umgebungsvariablen ENV FIRELY_TERMINAL_VERSION=3.1.0 ENV JAVA_VALIDATOR_VERSION=6.0.11 -ENV SUSHI_VERSION=3.5.0 - +ENV SUSHI_VERSION=3.8.0 # Installieren der notwendige Tools # Add Microsoft's .NET SDK repository and install .NET SDK RUN wget https://dot.net/v1/dotnet-install.sh \ diff --git a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json index e964e364..e06348ec 100644 --- a/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json +++ b/ImplementationGuide/Implementierungsleitfaden_ISiKBasismodul.json @@ -111,6 +111,11 @@ "nameUrl": "ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Rest.md", "title": "REST-API", "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md", + "title": "Patient-Merge", + "generation": "markdown" } ] }, @@ -671,6 +676,43 @@ "generation": "markdown" } ] + }, + { + "nameUrl": "ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Subscription.md", + "title": "Subscription patient-merge (R5 Backport Subscription)", + "generation": "markdown", + "page": [ + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_Motivation.md", + "title": "Motivation", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_Kompatibilitaet.md", + "title": "Kompatibilität", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_Profil.md", + "title": "Profil", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_AnmerkungenZuDenMustSupportFeldern.md", + "title": "Anmerkungen", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_Interaktionen.md", + "title": "Interaktionen", + "generation": "markdown" + }, + { + "nameUrl": "ImplementationGuide/markdown/Subscription/Subscription_Beispiele.md", + "title": "Beispiele", + "generation": "markdown" + } + ] } ] } diff --git a/ImplementationGuide/markdown/CapabilityStatement.md b/ImplementationGuide/markdown/CapabilityStatement.md index 3071b042..ab8c1da7 100644 --- a/ImplementationGuide/markdown/CapabilityStatement.md +++ b/ImplementationGuide/markdown/CapabilityStatement.md @@ -20,4 +20,4 @@ Canonical: ```https://gematik.de/fhir/isik/CapabilityStatement/core-server``` [Link Simplifier Profil Übersicht](https://gematik.de/fhir/isik/CapabilityStatement/basis-server) -{{render:https://gematik.de/fhir/isik/CapabilityStatement/basis-server}} +{{render:https://gematik.de/fhir/isik/CapabilityStatement/ISiKCapabilityStatementBasisServer}} diff --git a/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Subscription.md b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Subscription.md new file mode 100644 index 00000000..df6721c6 --- /dev/null +++ b/ImplementationGuide/markdown/Datenobjekte/Datenobjekte_Subscription.md @@ -0,0 +1,3 @@ +## Subscription patient-merge [(R5 Backport Subscription)](https://hl7.org/fhir/uv/subscriptions-backport/components.html) + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/ReleaseNotes.md b/ImplementationGuide/markdown/ReleaseNotes.md index 57ae3ec3..af4743f0 100644 --- a/ImplementationGuide/markdown/ReleaseNotes.md +++ b/ImplementationGuide/markdown/ReleaseNotes.md @@ -11,6 +11,7 @@ Version: 4.0.0-rc Datum: 11.03.2024 (WIP) * Ersetzen des ISiK-spezifischen Profils für IdentifierAbrechnungsnummer mit Profil aus Basisprofil-DE https://github.com/gematik/spec-ISiK-Basismodul/pull/381 +* Hinzufügen MustSupport für Patient.link & patient-merge Subscription(Topic) https://github.com/gematik/spec-ISiK-Basismodul/pull/395 * Abkündigen der Slices zu VersichertenId-GKV und ersetzen mit generischer Versicherten-ID : https://github.com/gematik/spec-ISiK-Basismodul/pull/382/files ---- diff --git a/ImplementationGuide/markdown/Subscription/Subscription_AnmerkungenZuDenMustSupportFeldern.md b/ImplementationGuide/markdown/Subscription/Subscription_AnmerkungenZuDenMustSupportFeldern.md new file mode 100644 index 00000000..36db710b --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_AnmerkungenZuDenMustSupportFeldern.md @@ -0,0 +1,49 @@ +### Anmerkungen zu den Must-Support-Feldern + +### `Subscription.status` + +**Bedeutung:** Der Status der Subscription, der den Serverstatus der Subscription angibt. Neue Subscriptions werden immer mit dem Status `requested` an den Server übergeben. Der Server ändert im Anschluss den Status auf `active` oder im Fehlerfall auf `error`. + +**Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) + +### `Subscription.reason` + +**Bedeutung:** Beschreibung wieso diese Subscription erstellt wurde. + +**Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) + +### `Subscription.category` + +**Bedeutung:** Canonical URL des Subscription-Topics, aktuell wird nur folgendes SubscriptionTopic unterstützt: https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge + +**Hinweise:** Siehe [Subscriptions R5 Backport](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription.html) + +### `Subscription.type` + +**Bedeutung:** Der Typ des Kommunikationskanals, über den Subscription-Benachrichtigungen gesendet werden sollen. + +**Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) + +### `Subscription.endpoint` + +**Bedeutung:** Adresse des Kommunikationskanals/ Endpunkts an den Subscription-Benachrichtigungen gesendet werden sollen. Dies ist nur für rest-hook Subscriptions relevant. + +**Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) + +### `Subscription.payload` + +**Bedeutung:** Format in dem Subscription Notifications versendet werden sollen (JSON oder XML) + +**Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) + +### `Subscription.payload.extension[content]` + +**Bedeutung:** Welcher Ressourceninhalt in der Nutzlast der Benachrichtigung geliefert werden soll. Zur Auswahl stehen eine leere Nutzlast (`empty`), nur die Ressourcenid (`id-only`) oder der gesamte Inhalt der Ressource (`full-resource`). + +**Hinweise:** Siehe [Extension: Backport R5 Subscription Payload Content Information](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-payload-content.html) + +### `Subscription.header` + +**Bedeutung:** http-Header welcher dazu genutzt werden kann einen Authorization-header zu setzen. Dies ist nur für rest-hook Subscriptions relevant. + +**Hinweise:** ACHTUNG: dieses Datenfeld muss bei READ-Interaktionen maskiert werden! Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html) \ No newline at end of file diff --git a/ImplementationGuide/markdown/Subscription/Subscription_Beispiele.md b/ImplementationGuide/markdown/Subscription/Subscription_Beispiele.md new file mode 100644 index 00000000..83ea3b6d --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_Beispiele.md @@ -0,0 +1,25 @@ +### Beispiele + +#### Subscription + +{{json:PatientMergeSubscriptionExample}} + +#### SubscriptionNotification-Bundle + +{{json:SubscriptionNotificationBundleExample}} + +#### Patientenobjekte +"Quell" Patienten-Ressource: +{{json:DorisQuelle}} + +und + +"Ziel" Patienten-Ressource: +{{json:DorisZiel}} + +Mittels eines Patient-merge-Vorgangs wird die "Ziel" Patienten-Ressource ausgewählt und beide Ressourcen entsprechend modifiziert: + +Resultierende Patientin: +{{json:DorisResultat}} + +--- diff --git a/ImplementationGuide/markdown/Subscription/Subscription_Interaktionen.md b/ImplementationGuide/markdown/Subscription/Subscription_Interaktionen.md new file mode 100644 index 00000000..240ad204 --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_Interaktionen.md @@ -0,0 +1,11 @@ +### Interaktionen + +Für die Ressource Subscription SOLL die REST-Interaktion "READ", "CREATE", "UPDATE", "DELETE" implementiert werden, insofern der festgelegte Lösungsansatz zu 'Patient merge Notification' implementiert wird. + +## Operations + +Bei der Umsetzung des Subscription Channel Type `websocket` SOLL die Operation [`$get-ws-binding-token`](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-get-ws-binding-token.html) supported werden. + +Siehe auch: {{pagelink:ImplementationGuide/markdown/CapabilityStatement.md, text:CapabilityStatement}} & {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md, text:Patient merge und Notification}} + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/Subscription/Subscription_Kompatibilitaet.md b/ImplementationGuide/markdown/Subscription/Subscription_Kompatibilitaet.md new file mode 100644 index 00000000..49209257 --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_Kompatibilitaet.md @@ -0,0 +1,8 @@ +### Kompatibilität + +Das Profil PatientMergeSubscription basiert auf dem [Backport-Subscription Profil](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription.html). +Der [SubscriptionStatus](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription-status-r4.html), sowie das [Subscription Notification Bundle](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription-notification-r4.html) werden unverändert direkt aus dem [Subscriptions R5 Backport IG](https://hl7.org/fhir/uv/subscriptions-backport/index.html) genutzt. + +--- + + diff --git a/ImplementationGuide/markdown/Subscription/Subscription_Motivation.md b/ImplementationGuide/markdown/Subscription/Subscription_Motivation.md new file mode 100644 index 00000000..e4e49956 --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_Motivation.md @@ -0,0 +1,9 @@ +## Motivation + +Subscription ist eine FHIR Ressource um als Client-System Benachrichtigungen über Events auf dem FHIR Server anzufragen. Der Subscription Mechanismus in FHIR R4 ist nicht geeignet, um alle relevanten Events (hier im Speziellen das Mergen von Patienten) zu unterstützen. Daher basiert das ISiK Subscription-Profil auf dem [Subscriptions R5 Backport Profil von HL7](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/StructureDefinition-backport-subscription.html). + +Siehe auch: {{pagelink:ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md, text:Übergreifende Festlegungen Patient-merge}} + +Um als Subsystem über ein Patienten-Merge-Event informiert zu werden, KANN der FHIR Subscription Mechanismus gemäß des [Subscriptions R5 Backport IGs von HL7](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/index.html) genutzt werden. + +--- diff --git a/ImplementationGuide/markdown/Subscription/Subscription_Profil.md b/ImplementationGuide/markdown/Subscription/Subscription_Profil.md new file mode 100644 index 00000000..714c85fe --- /dev/null +++ b/ImplementationGuide/markdown/Subscription/Subscription_Profil.md @@ -0,0 +1,11 @@ +## Profil + +@``` +from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription' select Name: name, Canonical: url +``` + +{{tree:https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription, hybrid}} + +@``` from StructureDefinition where url = 'https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription' for differential.element.constraint select key, severity, human, expression``` + +--- \ No newline at end of file diff --git a/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md new file mode 100644 index 00000000..cd205130 --- /dev/null +++ b/ImplementationGuide/markdown/UebergreifendeFestlegungen/UebergreifendeFestlegungen_Patient-merge.md @@ -0,0 +1,111 @@ +# Patient merge und Notification + +## Motivation +Im Rahmen von Krankenhausbesuchen umfassen u.a. die Aufnahme-Workflows regelmäßig die manuelle Bearbeitung von Patientenstammdaten. Daher ist hier das Risiko redundant persistierter Patientendaten stets vorhanden. Dies hat auch zur Folge, dass Zusammenführungen von Patientendaten in Krankenhäusern an der Tagesordnung stehen. + +Die Patientendatenzusammenführung (Patient merge) bezeichnet den Workflow der Bereinigung redundanter Patienten-Instanzen innerhalb eines KIS oder einer KH-IT-Umgebung. Die Bereinigung geschieht erfahrungsgemäß als halb-automatisierter Prozess, für den dedizierte Komponenten eingesetzt werden können (d.h. Master-Patient-Index). + +Im Kontext verteilter Systeme ist es entscheidend, dass ein patientenführendes System/Server (KIS) einen Client über einen Patient merge benachrichtigt (Patient merge Notification), damit der Client weiterhin auf eine korrekte Patienteninstanz zugreifen kann. Daher trifft dieser Abschnitt eine Festlegung zur Umsetzung einer Patient merge Notification auf Basis von FHIR. + +## Normativer Status +Alle hier getroffenen Festlegungen haben den normativen Status einer KANN-Anforderung. Werden allerdings die hier festgelegten Lösungen genutzt, so SOLLEN die hier angeführten Vorgaben (inklusive Profil-Ebene) eingehalten werden. + +Eine Prüfung im Rahmen des Bestätigungsverfahrens zur Patient merge Notification ist in der jetzigen Entwicklungsstufe nicht vorgesehen. + +## Zweck und Definition 'Patient merge Notification' +Zweck dieses Abschnitts ist eine Festlegung darüber zu treffen, wie externe Clients Patient-merge-Vorgänge nachvollziehen und entsprechend verarbeiten können. +Entsprechend wird hier eine Festlegung zur Kommunikation eines stattgefundenen Patient merges (Patient merge Notification) gegenüber einem Subsystem oder einem externen Service - u.a. mittels FHIR Subscriptions - festgelegt. + +**Definition**: Der Workflow 'Patient merge Notification' entspricht der Benachrichtigung angeschlossener Systeme über den erfolgreichen Patient merge. Die Benachrichtigung unterstützt das Kernziel einer reibungslosen Kommunikation zwischen zwei Systemen, nachdem ein Patient merge stattgefunden hat. Durch die Benachrichtigung wird ein fehlerhafter Abruf oder falsche Referenzierung einer alten Patientenressource von Seiten des Clients verhindert oder zumindest vorgebeugt und damit eine Verbesserung der Qualität hinsichtlich Robustheit und damit auch eine Stärkung der Praxistauglichkeit von ISiK als Schnittstellen-Lösung erreicht. + +## Festlegungen zu 'Patient merge Notification' +Falls eine Patient merge Notification im Rahmen von ISIK bereitgestellt wird, gelten folgende Festlegungen: + +Das patientenführende System SOLL einen Client mittels FHIR Subscription über einen erfolgten Patienten merge informieren können. Dieser Mechanismus basiert auf dem [Subscriptions R5 Backport IG](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/channels.html) und nutzt das Konzept der "Topic-Based Subscription" aus FHIR R5. + +Hierfür wurde das Subscription Topic: *https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge* definiert. + +Das patientenführende System SOLL den Support dieser Subscription innerhalb des CapabilityStatements bekannt geben. + +Weitere Informationen zum Subscription Workflow finden sich hier: + +[Subscription Workflow - Subscriptions R5 Backport](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/workflow.html) + +### Prove of Concept Implementierung +Zur Illustration der technischen Umsetzung für die Patient merge Notification dient ein [Prove of Concept (POC) mit Anleitung](https://github.com/gematik/poc-isik-patient-merge). + +### Notification Channel Types +Notifications über einen Patient-merge-Vorgang können per *rest-hook* oder *websocket* an das subscribende System versandt werden. Im *rest-hook* Fall postet das patientenführende System ein NotificationBundle an den in `Subscriptipn.channel.endpoint` definierten REST Endpunkt. Bei einer *websocket* Notification geschieht das über einen Websocket-Channel. Die Websocketurl, sowie ein Access Token können mittels [`$get-ws-binding-token` Operation](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/OperationDefinition-backport-subscription-get-ws-binding-token.html) vom Server abgerufen werden. + +## Abgrenzung zu 'Patient merge' +Das Mergen von Patientendaten ist Aufgabe des bestätigungsrelevanten Systems (d.h. hier des patientenführenden Systems / KIS). +Ein externes Starten eines Patient merge - bspw. durch die [$patient-merge Operation aus R5](https://hl7.org/fhir/R5/patient-operation-merge.html) - MUSS von einem bestätigungsrelevanten System NICHT unterstützt werden. + +**Hinweis**: Die Patienten-Ressource, die nicht weiter verwendet werden soll, nennen wir im Folgenden die "obsolete Ressource". Die Ressource, die erhalten bleiben soll, nennen wir "resultierende Ressource". + +### Obsolete Patienten-Ressource +Es gelten keine gesonderten Anforderungen an eine obsolete Patienten-Ressource über die ISiKPatient Profilanforderungen hinaus. + +Es gilt allerdings folgende Annahme: Das patientenführende System SOLL sicherstellen, dass alle auf die obsolete Ressource referenzierenden FHIR-Ressourcen nach dem Patient merge auf die resultierende Ressource referenzieren. + +Allerdings KANN das patientenführende System die obsolete Patienten-Ressource weiter vorhalten. Ein Entfernen der obsoleten Ressource ist ebenfalls erlaubt. + +Falls die obsolete Ressource nach einem merge weiter vorgehalten wird, SOLLEN die Elemente der obsoleten Ressource folgendermaßen befüllt werden, um sicherzustellen, dass die obsolete Ressource auf die resultieren Ressource verweist und dass die obsolete Ressource als inaktiv gekennzeichnet ist: +- .active = false +- .link.other = Reference(auf “resultierenden” Patient) +- .link.type = “replaced-by” + +### Resultierende Patienten-Ressource +Es gelten keine gesonderten Anforderungen an eine obsolete Patienten-Ressource über die ISIKPatient Profilanforderungen hinaus. + +Allerdings SOLL das patientenführende System nach einem merge die Elemente der resultierenden Ressource folgendermaßen befüllen, um sicherzustellen, dass die resultierende Ressource auf die obsolete Ressource verweist: +- .link.other = Reference.identifier (logische Referenz mittels Patientennummer Identifier auf “obsoleten” Patient) +- .link.type = “replaces” + +Siehe auch: {{pagelink:ImplementationGuide/markdown/Patient/Patient_Profil.md, text:Patienten Profil }} + +### Referenzen auf das Patientenobjekt +Das patientenführende System muss im Rahmen des Patient merges alle auf den Patienten referenzierenden Ressourcen auf die resultierende Ressource referenzieren lassen. + +## Hinweise zum Client-System + +### Recovery Mechanismus +Ein Recovery Mechanismus wird benötigt, damit im Falle einer ausgebliebenen Patient merge Notification ein Client die aktuelle Patienteninstanz auffinden und erneut referenzieren kann. + +Folgender Hinweis dient der Einhaltung eines Recovery Mechanismus: + +Client-Systeme SOLLEN den Status einer gecachten Patienteninstanz vor der Interaktion mit einem patientenführenden System per READ auf das Patientenobjekt überprüfen. +Sollte die Patienten-Ressource nicht mehr bereitstehen, oder die Ressource den status `active=false` haben, kann das Patientenobjekt mittels Suche auf einen bekannten und stabilen Identifier, bspw. die gesetzliche Krankenversichertennummer, neu geladen werden. + + +### Datensicherheit Client + +**Hinweis**: Die "patient-merge Subscription-Notification" kann personenbezogene Daten versenden, falls man "full-resource" als Content-Code gewählt hat. Für den REST-Hook sollte daher stets ein HTTPS-Endpunkt genutzt werden. Zusätzlich kann Subscription.channel.header genutzt werden, um einen Autorisierungs-Header an den Endpunkt zu übertragen. +Siehe auch: [Safety and Security, Subscription Backport IG](https://hl7.org/fhir/uv/subscriptions-backport/safety_security.html) + +In jedem Fall sind auch Client-seitig die notwendigen Maßnahmen zu ergreifen, um eine sichere Kommunikation personenbezogener Daten zu gewährleisten. + +### Websocket + +Hier muss sich der Client per [`$get-ws-binding-token` Operation](https://hl7.org/fhir/uv/subscriptions-backport/OperationDefinition-backport-subscription-get-ws-binding-token.html) einen Token zum Zugriff auf den Websocket-Endpunkt des patientenführenden Systems holen. In der Operation-Response sind zusätzlich die Expiration-Dauer, sowie der Websocket-Endpunkt enthalten. +Siehe auch: [Subscriptions R5 Backport IG, Websocket](https://hl7.org/fhir/uv/subscriptions-backport/channels.html#websockets) + +## Beispiele +Die Patient merge Notification kann folgendermaßen illustriert werden: + +Es existieren fälschlicherweise zwei Instanzen im patientenführenden System, die sich lediglich hinsichtlich der organisationsspezifischen Patienten-ID unterscheiden. +Diese sind: + +"Quell" Patienten-Ressource: +{{json:DorisQuelle}} + +und + +"Ziel" Patienten-Ressource: +{{json:DorisZiel}} + +Mittels eines Patient merge wird die "Ziel" Patienten-Ressource ausgewählt und beide Ressourcen entsprechend modifiziert. Daraus entsteht die resultierende Patienten-Instanz: +{{json:DorisResultat}} + +Da sich ein Client am patientenführenden System für das dedizierte SubscriptionTopic (http://hl7.org/SubscriptionTopic/patient-merge) registriert hat, erhält der Client eine Benachrichtigung in Form eines Bundles mit Verweis auf die resultierende Ressource. + diff --git a/Material/images/diagrams/infomodel.svg b/Material/images/diagrams/infomodel.svg deleted file mode 100644 index 0e09c955..00000000 --- a/Material/images/diagrams/infomodel.svg +++ /dev/null @@ -1 +0,0 @@ -PlantUML 1.2024.2[From infomodel.puml (line 76) ] @startuml infomodel   class ISiKAllergieUnvertraeglichkeit <AllergyIntolerance><<(P,#8DA5C4)>>{...... ( skipping 21 lines )...subject : Reference ( **Patient** | \nGroup | Device | Location). . .}  class ISiKAlkoholAbusus <Observation><<(P,#8DA5C4)>>{Dokumentation auf Simplifier[[https://simplifier.net/isik-basis-v4/isikalkoholabusus ISiK Alkohol Abusus]]---code : snomed sct **15167005**. . .}class ISiKRaucherStatus <Observation><<(P,#8DA5C4)>>{Dokumentation auf Simplifier[[https://simplifier.net/isik-basis-v4/isikraucherstatus ISiK Raucherstatus]]---code : snomed sct **77176002**. . .}together Observations {Syntax Error? \ No newline at end of file diff --git a/Material/images/diagrams/infomodel_condobs.svg b/Material/images/diagrams/infomodel_condobs.svg deleted file mode 100644 index 8c291f8b..00000000 --- a/Material/images/diagrams/infomodel_condobs.svg +++ /dev/null @@ -1 +0,0 @@ -ISiKAllergieUnvertraeglichkeitAllergyIntoleranceDokumentation auf SimplifierISiK AllergieUnvertraeglichkeitclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingverificationStatus :AllergyIntoleranceVerificationStatusCodescodingtype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecoding. . .ISiKLebensZustandObservationDokumentation auf SimplifierISiK LebensZustandstatus :ObservationStatuscodesubject : Reference (Patient|Group | Device | Location). . .ISiKAlkoholAbususObservationDokumentation auf SimplifierISiK Alkohol Abususcode : snomed sct15167005. . .ISiKRaucherStatusObservationDokumentation auf SimplifierISiK Raucherstatuscode : snomed sct77176002. . .ISiKSchwangerschaftErwarteterEntbindungsterminObservationDokumentation auf SimplifierISiK Schwangerschaft - Erwarteter Entbindungstermincode :SchwangerschaftEtMethodeVS. . .ISiKSchwangerschaftsstatusObservationDokumentation auf SimplifierISiK Schwangerschaftsstatuscode : loinc82810-3. . .SchwangerschaftsstatusVSValueSetDokumentation auf SimplifierSchwangerschaft StatusfromLOINCISiKStillstatusObservationDokumentation auf SimplifierISiK Stillstatuscode : snomed sct1260078007. . .ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKPersonImGesundheitsberufPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKAngehoerigerRelatedPersonDokumentation auf SimplifierISiK Angehoerigerpatient : Reference (Patient)name : HumanNameaddress : AddressStrassenanschrift:AdressePostfach:Adresse. . .LOINCCodesValueSetDokumentation auf HL7 OrgObservation CodesfromLOINCSchwangerschaftEtMethodeVSValueSetDokumentation auf SimplifierSchwangerschaft Estimated MethodefromLOINCAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityfromHL7AllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusfromHL7AllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusfromHL7AllergyIntoleranceTypeValueSetDokumentation auf HL7 OrgAllergy Intolerance TypefromCode System of Allergy IntoleranceAllergyIntoleranceCodeValueSetDokumentation auf HL7 OrgSubstance/Product, Condition, NegationCodesfromSNOMED CTReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityfromHL71..11..10..10..10..10..11..1 \ No newline at end of file diff --git a/Material/images/diagrams/resourcediagram.svg b/Material/images/diagrams/resourcediagram.svg index 7c5bc76f..2937ca47 100644 --- a/Material/images/diagrams/resourcediagram.svg +++ b/Material/images/diagrams/resourcediagram.svg @@ -1 +1 @@ -ISiK_BasisObservationsValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAllergieUnvertraeglichkeitAllergyIntoleranceclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingsystemcodeverificationStatus :AllergyIntoleranceVerificationStatusCodescodingsystemcodetype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecodingsnomed-ctsystem : http://snomed.info/sctcodedisplayask : http://fhir.de/StructureDefinition/CodingASKsystemcodedisplayatc : http://fhir.de/StructureDefinition/CodingATCsystemversioncodedisplaytextpatient : Reference (Patient)encounter : Reference (Encounter)onset[x]onsetDateTimeonsetAgeonsetStringrecordedDate : dateTimerecorder : Reference (Practitioner| PractitionerRole |Patient| RelatedPerson)referencedisplayasserter: Reference (Patient|RelatedPerson|Practitioner| PractitionerRole)referencedisplaynote : Annotationauthor[x]referencedisplaytimetextreactionmanifestationcodingsnomed-ctsystem : http://snomed.info/sctcodetextseverityexposureRoutecodingsnomed-ctsystem : http://snomed.info/sctcodetextISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryISiKBerichtBundleBundleidentifiertype :documenttimestampentryfullUrlresource search request responseCompositionresource :ISiKBerichtSubSystemeISiKBerichtSubSystemeBundleISiKLebensZustandObservationstatus :ObservationStatuscodesubject : Reference (Patient|Group | Device | Location)referenceeffective[x]value[x]ISiKAlkoholAbususObservationcategory : secondary-findingsocial-historycode : snomed sct15167005value[x]valueBooleanISiKRaucherStatusObservationcategory : secondary-findingsocial-historycode : snomed sct77176002value[x]valueBooleanISiKSchwangerschaftErwarteterEntbindungsterminObservationcode :SchwangerschaftEtMethodeVSvalue[x]valueDateTimeISiKSchwangerschaftsstatusObservationcode : loinc82810-3value[x]valueCodeableConcept :SchwangerschaftsstatusVShasMember : Reference(ISiKSchwangerschaftErwarteterEntbindungstermin)referenceISiKStillstatusObservationcode : snomed sct1260078007value[x]valueBooleanISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterSchwangerschaftEtMethodeVSValueSetDokumentation auf SimplifierSchwangerschaft Estimated MethodeIncludes following codes from the code SystemLOINC11778-8displays-asDelivery date Estimated11779-6displays-asDelivery date Estimated from last menstrual period11780-4displays-asDelivery date Estimated from ovulation dateSchwangerschaftsstatusVSValueSetDokumentation auf SimplifierSchwangerschaft StatusIncludes following codes from the code SystemLOINCLA15173-0displays-asPregnantLA26683-5displays-asNot pregnantLA4489-6displays-asUnknownBasisprofile_DEDokumentation auf HL7 OrgBasisprofil DE (RE4)identifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die Abbildungeiner Abrechnungsnummer ("Fallnummer")ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationLOINCCodesValueSetDokumentation auf HL7 OrgObservation CodesIncludes all codes from the underlying code systemLOINCAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount StatusAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of CriticalityAllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Verification StatusAllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Clinical StatusAllergyIntoleranceTypeValueSetDokumentation auf HL7 OrgAllergy Intolerance TypeIncludes all codes from the underlying code systemCode System of Allergy IntoleranceAllergyIntoleranceCodeValueSetDokumentation auf HL7 OrgSubstance/Product, Condition, NegationCodesIncludes various codes from the code SystemSNOMED CTcodes :$CS-SCTis-a105590001codes :$CS-SCTis-a418038007. . .ReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of SeverityObservationCategoryCodesValueSetDokumentation auf HL7 OrgObservation CategoryIncludes all codes from the underlying code systemCode System of Observation CategoryObservationStatusValueSetDokumentation auf HL7 OrgObservation StatusIncludes all codes from the underlying code systemCode System of Observation Status \ No newline at end of file +ISiK_BasisValueSetsDE_Basisprofile_R4HL7_FHIR_R4_CoreidentifierAbrechnungsnummerIdentifierDokumentation auf SimplifierIdentifier-Profilfür die "Fallnummer"Dokumentation auf SimplifierIdentifier-Profilfür die Abbildungeiner Abrechnungsnummer ("Fallnummer")ISiKAbrechnungsfallAccountidextension :ExtensionAbrechnungsDiagnoseProzedurAbrechnungsDiagnoseProzeduridentifierAbrechnungsnummer :identifierAbrechnungsnummertype :ISiKAccountIdentifierTypesystemvaluestatus : AccountStatustype :ISiKAccountTypesubject : Reference (Patient)coverageextension :ExtensionAbrechnungsartAbrechnungsartcoverageISiKAngehoerigerRelatedPersonpatient : Reference (Patient)name : HumanName // deutsches Basisprofiladdress : AddressStrassenanschrift: Adresse // deutsches BasisprofilPatternextensionStadtteiltype : AddressType.bothlineextensionStrasseHausnummerAdresszusatz PostfachcitypostalCodecountryPostfach: Adresse // deutsches BasisprofilPatterntype : AddressType.postallineextension Strasse Hausnummer AdresszusatzPostfachcitypostalCodecountryISiKAllergieUnvertraeglichkeitAllergyIntoleranceclinicalStatus :AllergyIntoleranceClinicalStatusCodescodingsystemcodeverificationStatus :AllergyIntoleranceVerificationStatusCodescodingsystemcodetype :AllergyIntoleranceTypecategory :AllergyIntoleranceCategorycriticality :AllergyIntoleranceCriticalitycodecodingsnomed-ctsystem : http://snomed.info/sctcodedisplayask : http://fhir.de/StructureDefinition/CodingASKsystemcodedisplayatc : http://fhir.de/StructureDefinition/CodingATCsystemversioncodedisplaytextpatient : Reference (Patient)encounter : Reference (Encounter)onset[x]onsetDateTimeonsetAgeonsetStringrecordedDate : dateTimerecorder : Reference (Practitioner| PractitionerRole |Patient| RelatedPerson)referencedisplayasserter: Reference (Patient|RelatedPerson|Practitioner| PractitionerRole)referencedisplaynote : Annotationauthor[x]referencedisplaytimetextreactionmanifestationcodingsnomed-ctsystem : http://snomed.info/sctcodetextseverityexposureRoutecodingsnomed-ctsystem : http://snomed.info/sctcodetextBasismodul_Stufe_4Dokumentation auf SimplifierISiK Basis Stufe 3ISiKPatientPatientDokumentation auf SimplifierISiK PatientISiKKontaktGesundheitseinrichtungEncounterDokumentation auf SimplifierISiK Kontakt GesundheitseinrichtungISiKPractitionerPractitionerDokumentation auf SimplifierISiK Person im GesundheitsberufISiKAccountIdentifierTypeValueSetDokumentation auf SimplifierISiK Account Identifier TypeIncludes codes from the code Systemv2.0203ANdisplays-asAccount NumberISiKAccountTypeValueSetDokumentation auf SimplifierISiK Account TypeIncludes codes from the code Systemv3.ActCodeAMBdisplays-asambulatoryIMPdisplays-asinpatient encounterSchwangerschaftEtMethodeVSValueSetDokumentation auf SimplifierSchwangerschaft Estimated MethodeIncludes following codes from the code SystemLOINC11778-8displays-asDelivery date Estimated11779-6displays-asDelivery date Estimated from last menstrual period11780-4displays-asDelivery date Estimated from ovulation dateSchwangerschaftsstatusVSValueSetDokumentation auf SimplifierSchwangerschaft StatusIncludes following codes from the code SystemLOINCLA15173-0displays-asPregnantLA26683-5displays-asNot pregnantLA4489-6displays-asUnknownBasisprofile_ModulDokumentation auf HL7 OrgBasisprofil DE (RE4)ExtensionAbrechnungsDiagnoseProzedurDokumentation auf SimplifierFallbezogene Abrechnungsrelevanzvon Diagnosen und ProzedurenExtensionAbrechnungsartDokumentation auf SimplifierAbrechnungsartgender-amtlich-deDokumentation auf SimplifierAdministratives Geschlecht 'other'humanname-de-basisDokumentation auf SimplifierHumanName, deutsches Basisprofiladdress-de-basisDokumentation auf SimplifierAdresse, deutsches BasisprofilFoundation_ModulDokumentation auf HL7 OrgHL7 FHIR R4 Core FoundationLOINCCodesValueSetDokumentation auf HL7 OrgObservation CodesIncludes all codes from the underlying code systemLOINCAccountStatusValueSetDokumentation auf SimplifierAccount StatusIncludes all codes from the underlying code SystemAccount StatusAllergyIntoleranceCriticalityValueSetDokumentation auf HL7 OrgAllergy Intolerance CriticalityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of CriticalityAllergyIntoleranceVerificationStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Verification StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Verification StatusAllergyIntoleranceClinicalStatusValueSetDokumentation auf HL7 OrgAllergy Intolerance Clinical StatusDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Clinical StatusAllergyIntoleranceTypeValueSetDokumentation auf HL7 OrgAllergy Intolerance TypeIncludes all codes from the underlying code systemCode System of Allergy IntoleranceAllergyIntoleranceCodeValueSetDokumentation auf HL7 OrgSubstance/Product, Condition, NegationCodesIncludes various codes from the code SystemSNOMED CTcodes :$CS-SCTis-a105590001codes :$CS-SCTis-a418038007. . .ReactionEventSeverityValueSetDokumentation auf HL7 OrgReaction Eventu SeverityDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of SeverityObservationCategoryValueSetDokumentation auf HL7 OrgObservation CategoryDas entsprechende Standard-ValueSet beeinhatet das kompletteCode System des zugehörigenCode System of Observation Category \ No newline at end of file diff --git a/Material/images/diagrams/usecases.svg b/Material/images/diagrams/usecases.svg index 500d75b0..9546953d 100644 --- a/Material/images/diagrams/usecases.svg +++ b/Material/images/diagrams/usecases.svg @@ -1 +1 @@ -AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieEinbeziehungAngehörigerOrgan- undGewebespendeKontaktAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinsichtnahmeDiagnostizierenLeistungserbringungAllergieund InteloranzenSchwangerschaftMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitInformationsVerlustPatientFallDiagnoseBehandlungOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file +AllgemeinPatienten-ManagementAdverse Use CasesVerwechslungTechnical Use CaseVersorgungAdministrationDigitalisierungDokumentationAbrechnungWirtschaftlichkeitVersicherungsverhältnisStrukturierungOrganisationsstrukturArchivierungDelegationKonsultationTransparenzInformation &HistorieEinbeziehungAngehörigerOrgan- undGewebespendeKontaktAufnahmeBehandlungs-JourneyEntlassungÜberleitungInformationEinsichtnahmeDiagnostizierenLeistungserbringungAllergieund InteloranzenSchwangerschaftMerhfachdokumentationDokumentationslückenNicht-VerfügbarkeitVerlustPatientFallDiagnoseBehandlungOrt-ZeitSynchronisationPerformance &DatensparsamkeitWechsel führendes SystemKommunikationEindeutigkeitGrundlagen-RessourcenHeilberuflerVersicherterFHIR Repository«Technical User»Client«Technical User» \ No newline at end of file diff --git a/Material/images/src/plantuml/infomodel.puml b/Material/images/src/plantuml/infomodel.puml deleted file mode 100644 index dae2955b..00000000 --- a/Material/images/src/plantuml/infomodel.puml +++ /dev/null @@ -1,251 +0,0 @@ -@startuml dummy -' package Dummy{ -' entity Entität01 { -' optionales Attribut -' **optionales fettes Attribut** -' * **vorgeschriebens fettes Attribut** -' } -' -' entity Entität01 { -' optionales Attribut : text -' **optionales fettes Attribut** nummer <> -' * **vorgeschriebens fettes Attribut** -' } -' Entität01 }|..|| Entität02 -' Entität03 }o..o| Entität04 -' Entität05 ||--o{ Entität06 -' Entität07 |o--|| Entität08 -' } -@enduml - - -@startuml infomodel -'verhindere Probleme mit gewinkelten Krähenfüßen -'skinparam linetype ortho - -'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient -'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle -'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle - - 'ISiKMedikation::itemReference --> ISiKMedikation - -'AMTS related -'together { -class ISiKAllergieUnvertraeglichkeit <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikallergieunvertraeglichkeit ISiK AllergieUnvertraeglichkeit]] - --- - clinicalStatus : **AllergyIntoleranceClinicalStatusCodes** - |_ coding - verificationStatus : **AllergyIntoleranceVerificationStatusCodes** - |_ coding - type : **AllergyIntoleranceType** - category : **AllergyIntoleranceCategory** - criticality : **AllergyIntoleranceCriticality** - code - |_ coding - . . . -} - -class ISiKLebensZustand <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isiklebenszustand ISiK LebensZustand]] - --- - status : **ObservationStatus** - code - subject : Reference ( **Patient** | \nGroup | Device | Location) - . . . -} - - - class ISiKAlkoholAbusus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikalkoholabusus ISiK Alkohol Abusus]] - --- - code : snomed sct **15167005** - . . . - } - class ISiKRaucherStatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikraucherstatus ISiK Raucherstatus]] - --- - code : snomed sct **77176002** - . . . - } -'Oservation Childs -together Observations { - - class ISiKSchwangerschaftErwarteterEntbindungstermin <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikschwangerschafterwarteterentbindungstermin ISiK Schwangerschaft - Erwarteter Entbindungstermin]] - --- - code : **SchwangerschaftEtMethodeVS** - . . . - } - class ISiKSchwangerschaftsstatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikschwangerschaftsstatus ISiK Schwangerschaftsstatus]] - --- - code : loinc **82810-3** - . . . - } - - class SchwangerschaftsstatusVS <<(V,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/schwangerschaftsstatusvs Schwangerschaft Status]] from [[http://loinc.org LOINC]] - } - - class ISiKStillstatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikstillstatus ISiK Stillstatus]] - --- - code : snomed sct **1260078007** - . . . - } -} - - -' Weiteres Basis -together { - - class ISiKPatient <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikpatient ISiK Patient]] - } - - class ISiKPersonImGesundheitsberuf <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] - } - class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]] - } - - class ISiKAbrechnungsfall <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-labor-v4/isiklabrechnungsfall ISiK Abrechnungsfall]] - --- - extension : **ExtensionAbrechnungsDiagnoseProzedur** - |_ AbrechnungsDiagnoseProzedur - . . . - } - - class ISiKAngehoeriger <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikangehoeriger ISiK Angehoeriger]] - --- - patient : Reference ( **Patient**) - name : HumanName - address : Address - |_ Strassenanschrift : **Adresse** - |_ Postfach : **Adresse** - . . . - } - - class ISiKBerichtBundle <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikberichtbundle ISiK Bericht bundle]] - --- - type : **document** - entry - |_ Composition - |_ resource : **ISiKBerichtSubSysteme** - . . . - } - - class ISiKBerichtSubSysteme <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikberichtsubsysteme ISiK Bericht SubSysteme]] - } - -} - -'Valuesets Observations - - class LOINCCodes <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/observation-codes Observation Codes]] from [[https://loinc.org/ LOINC]] - } - - class SchwangerschaftEtMethodeVS <<(V,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/schwangerschaftetmethodevs Schwangerschaft Estimated Methode]] from [[http://loinc.org LOINC]] - } - - -together { - class AllergyIntoleranceCriticality <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-allergy-intolerance-criticality.html Allergy Intolerance Criticality]] from [[https://hl7.org/fhir/R4/codesystem-allergy-intolerance-criticality.html HL7]] - } - class AllergyIntoleranceVerificationStatus <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-verification.html Allergy Intolerance Verification Status]] from [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-verification.html HL7]] - } - class AllergyIntoleranceClinicalStatus <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-clinical.html Allergy Intolerance Clinical Status]] from [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-clinical.html HL7]] - } - class AllergyIntoleranceType <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/allergy-intolerance-type Allergy Intolerance Type]] from [[http://hl7.org/fhir/allergy-intolerance-type Code System of Allergy Intolerance]] - } - class AllergyIntoleranceCode <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/allergyintolerance-code Substance/Product, Condition, NegationCodes]] from [[http://snomed.info/sct SNOMED CT]] - } - class ReactionEventSeverity <<(V,#8DA5C4)>> { - Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-reaction-event-severity.html Reaction Eventu Severity]] from [[https://hl7.org/fhir/R4/codesystem-reaction-event-severity.html HL7]] - } -} - - -'Relations regarding basis AMTS - -'diamonds -'together { -<> MultiRef_PracPatRel -MultiRef_PracPatRel -- ISiKPersonImGesundheitsberuf -MultiRef_PracPatRel -- ISiKPatient -MultiRef_PracPatRel -- ISiKAngehoeriger -<> MultiRef_AllergyDetails -MultiRef_AllergyDetails -up- AllergyIntoleranceCriticality -MultiRef_AllergyDetails -up- AllergyIntoleranceVerificationStatus -MultiRef_AllergyDetails -up- AllergyIntoleranceClinicalStatus -MultiRef_AllergyDetails -up- ReactionEventSeverity -MultiRef_AllergyDetails -up- AllergyIntoleranceType -MultiRef_AllergyDetails -up-> " 1..1 " AllergyIntoleranceCode -'} - -'AMTS -ISiKAllergieUnvertraeglichkeit::patient --> " 1..1 " ISiKPatient -ISiKAllergieUnvertraeglichkeit::encounter --> " 0..1 " ISiKKontaktGesundheitseinrichtung -ISiKAllergieUnvertraeglichkeit::recorder --> " 0..1 " MultiRef_PracPatRel -ISiKAllergieUnvertraeglichkeit::recorder .up. MultiRef_AllergyDetails - -'Specific Observations inherit from generic obseration -ISiKLebensZustand <|-- ISiKAlkoholAbusus -ISiKLebensZustand <|-- ISiKRaucherStatus -ISiKLebensZustand <|-- ISiKSchwangerschaftsstatus -ISiKLebensZustand <|-- ISiKSchwangerschaftErwarteterEntbindungstermin -ISiKLebensZustand <|-- ISiKStillstatus - -ISiKSchwangerschaftsstatus::hasMember -down-> " 0..1 " ISiKSchwangerschaftErwarteterEntbindungstermin -ISiKSchwangerschaftsstatus::value ..> " 0..1 " SchwangerschaftsstatusVS -ISiKSchwangerschaftErwarteterEntbindungstermin::code ..> " 1..1 " SchwangerschaftEtMethodeVS - -' namespace dummy { -' class Foo { -' + field1 -' + field2 -' } -' class Bar { -' + field3 -' + field4 -' } -' Foo::field1 --> Bar::field3 : foo -' Foo::field2 --> Bar::field4 : bar -' } -@enduml \ No newline at end of file diff --git a/Material/images/src/plantuml/infomodel_condobs.puml b/Material/images/src/plantuml/infomodel_condobs.puml deleted file mode 100644 index 5d076dc5..00000000 --- a/Material/images/src/plantuml/infomodel_condobs.puml +++ /dev/null @@ -1,224 +0,0 @@ -@startuml dummy -' package Dummy{ -' entity Entität01 { -' optionales Attribut -' **optionales fettes Attribut** -' * **vorgeschriebens fettes Attribut** -' } -' -' entity Entität01 { -' optionales Attribut : text -' **optionales fettes Attribut** nummer <> -' * **vorgeschriebens fettes Attribut** -' } -' Entität01 }|..|| Entität02 -' Entität03 }o..o| Entität04 -' Entität05 ||--o{ Entität06 -' Entität07 |o--|| Entität08 -' } -@enduml - - -@startuml infomodel_condobs -'verhindere Probleme mit gewinkelten Krähenfüßen -'skinparam linetype ortho - -'ISiK_Medikation.ISiKMedikationsListe::subject --> ISiK_Basis.ISiKPatient -'ISiK_Medikation.ISiKMedikationTransaction --> R4_Core.Bundle -'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle - - 'ISiKMedikation::itemReference --> ISiKMedikation - -'AMTS related -'together { -class ISiKAllergieUnvertraeglichkeit <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikallergieunvertraeglichkeit ISiK AllergieUnvertraeglichkeit]] - --- - clinicalStatus : **AllergyIntoleranceClinicalStatusCodes** - |_ coding - verificationStatus : **AllergyIntoleranceVerificationStatusCodes** - |_ coding - type : **AllergyIntoleranceType** - category : **AllergyIntoleranceCategory** - criticality : **AllergyIntoleranceCriticality** - code - |_ coding - . . . -} - -class ISiKLebensZustand <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isiklebenszustand ISiK LebensZustand]] - --- - status : **ObservationStatus** - code - subject : Reference ( **Patient** | \nGroup | Device | Location) - . . . -} - - - class ISiKAlkoholAbusus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikalkoholabusus ISiK Alkohol Abusus]] - --- - code : snomed sct **15167005** - . . . - } - class ISiKRaucherStatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikraucherstatus ISiK Raucherstatus]] - --- - code : snomed sct **77176002** - . . . - } -'Oservation Childs -together { - class ISiKSchwangerschaftErwarteterEntbindungstermin <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikschwangerschafterwarteterentbindungstermin ISiK Schwangerschaft - Erwarteter Entbindungstermin]] - --- - code : **SchwangerschaftEtMethodeVS** - . . . - } - class ISiKSchwangerschaftsstatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikschwangerschaftsstatus ISiK Schwangerschaftsstatus]] - --- - code : loinc **82810-3** - . . . - } - - class SchwangerschaftsstatusVS <<(V,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/schwangerschaftsstatusvs Schwangerschaft Status]] from [[http://loinc.org LOINC]] - } - - class ISiKStillstatus <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikstillstatus ISiK Stillstatus]] - --- - code : snomed sct **1260078007** - . . . - } -} - - -' Weiteres Basis -together { - class ISiKPatient <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikpatient ISiK Patient]] - } - - class ISiKPersonImGesundheitsberuf <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] - } - class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]] - } - - class ISiKAngehoeriger <<(P,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/isikangehoeriger ISiK Angehoeriger]] - --- - patient : Reference ( **Patient**) - name : HumanName - address : Address - |_ Strassenanschrift : **Adresse** - |_ Postfach : **Adresse** - . . . - } - -} - -'Valuesets Observations - - class LOINCCodes <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/observation-codes Observation Codes]] from [[https://loinc.org/ LOINC]] - } - - class SchwangerschaftEtMethodeVS <<(V,#8DA5C4)>>{ - Dokumentation auf Simplifier - [[https://simplifier.net/isik-basis-v4/schwangerschaftetmethodevs Schwangerschaft Estimated Methode]] from [[http://loinc.org LOINC]] - } - - -together { - class AllergyIntoleranceCriticality <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-allergy-intolerance-criticality.html Allergy Intolerance Criticality]] from [[https://hl7.org/fhir/R4/codesystem-allergy-intolerance-criticality.html HL7]] - } - class AllergyIntoleranceVerificationStatus <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-verification.html Allergy Intolerance Verification Status]] from [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-verification.html HL7]] - } - class AllergyIntoleranceClinicalStatus <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://www.hl7.org/fhir/R4/valueset-allergyintolerance-clinical.html Allergy Intolerance Clinical Status]] from [[https://www.hl7.org/fhir/R4/codesystem-allergyintolerance-clinical.html HL7]] - } - class AllergyIntoleranceType <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/allergy-intolerance-type Allergy Intolerance Type]] from [[http://hl7.org/fhir/allergy-intolerance-type Code System of Allergy Intolerance]] - } - class AllergyIntoleranceCode <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[http://hl7.org/fhir/ValueSet/allergyintolerance-code Substance/Product, Condition, NegationCodes]] from [[http://snomed.info/sct SNOMED CT]] - } - class ReactionEventSeverity <<(V,#8DA5C4)>> { - Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-reaction-event-severity.html Reaction Eventu Severity]] from [[https://hl7.org/fhir/R4/codesystem-reaction-event-severity.html HL7]] - } -} - - -'Relations regarding basis AMTS - -'diamonds -'together { -<> MultiRef_PracPatRel -MultiRef_PracPatRel -- ISiKPersonImGesundheitsberuf -MultiRef_PracPatRel -- ISiKPatient -MultiRef_PracPatRel -- ISiKAngehoeriger -<> MultiRef_AllergyDetails -MultiRef_AllergyDetails -up- AllergyIntoleranceCriticality -MultiRef_AllergyDetails -up- AllergyIntoleranceVerificationStatus -MultiRef_AllergyDetails -up- AllergyIntoleranceClinicalStatus -MultiRef_AllergyDetails -up- ReactionEventSeverity -MultiRef_AllergyDetails -up- AllergyIntoleranceType -MultiRef_AllergyDetails -up-> " 1..1 " AllergyIntoleranceCode -'} - -'AMTS -ISiKAllergieUnvertraeglichkeit::patient --> " 1..1 " ISiKPatient -ISiKAllergieUnvertraeglichkeit::encounter --> " 0..1 " ISiKKontaktGesundheitseinrichtung -ISiKAllergieUnvertraeglichkeit::recorder --> " 0..1 " MultiRef_PracPatRel -ISiKAllergieUnvertraeglichkeit::recorder .up. MultiRef_AllergyDetails - -'Specific Observations inherit from generic obseration -ISiKLebensZustand <|-- ISiKAlkoholAbusus -ISiKLebensZustand <|-- ISiKRaucherStatus -ISiKLebensZustand <|-- ISiKSchwangerschaftsstatus -ISiKLebensZustand <|-- ISiKSchwangerschaftErwarteterEntbindungstermin -ISiKLebensZustand <|-- ISiKStillstatus - -ISiKSchwangerschaftsstatus::hasMember -down-> " 0..1 " ISiKSchwangerschaftErwarteterEntbindungstermin -ISiKSchwangerschaftsstatus::value ..> " 0..1 " SchwangerschaftsstatusVS -ISiKSchwangerschaftErwarteterEntbindungstermin::code ..> " 1..1 " SchwangerschaftEtMethodeVS - -' namespace dummy { -' class Foo { -' + field1 -' + field2 -' } -' class Bar { -' + field3 -' + field4 -' } -' Foo::field1 --> Bar::field3 : foo -' Foo::field2 --> Bar::field4 : bar -' } -@enduml \ No newline at end of file diff --git a/Material/images/src/plantuml/resourcediagram.puml b/Material/images/src/plantuml/resourcediagram.puml index 58a115fb..982ba9a4 100644 --- a/Material/images/src/plantuml/resourcediagram.puml +++ b/Material/images/src/plantuml/resourcediagram.puml @@ -34,6 +34,10 @@ set separator none 'ISiK_Medikation.ISiKMedikationTransactionResponse --|> R4_Core.Bundle namespace ISiK_Basis { + class identifierAbrechnungsnummer <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/identifierabrechnungsnummer Identifier-Profil]] für die "Fallnummer" + } 'ISiKMedikation::itemReference --> ISiKMedikation class ISiKAbrechnungsfall <<(P,#8DA5C4)>>{ @@ -54,6 +58,36 @@ namespace ISiK_Basis { |_ coverage } + class ISiKAngehoeriger <<(P,#8DA5C4)>>{ + patient : Reference ( **Patient**) + name : HumanName // deutsches Basisprofil + address : Address + |_ Strassenanschrift : Adresse // deutsches BasisprofilPattern + |_ extension + |_ Stadtteil + |_ type : AddressType.both + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country + |_ Postfach : Adresse // deutsches BasisprofilPattern + |_ type : AddressType.postal + |_ line + |_ extension + |_ Strasse + |_ Hausnummer + |_ Adresszusatz + |_ Postfach + |_ city + |_ postalCode + |_ country + } + class ISiKAllergieUnvertraeglichkeit <<(P,#8DA5C4)>>{ clinicalStatus : **AllergyIntoleranceClinicalStatusCodes** |_ coding @@ -116,101 +150,6 @@ namespace ISiK_Basis { |_ code |_ text } - - class ISiKAngehoeriger <<(P,#8DA5C4)>>{ - patient : Reference ( **Patient**) - name : HumanName // deutsches Basisprofil - address : Address - |_ Strassenanschrift : Adresse // deutsches BasisprofilPattern - |_ extension - |_ Stadtteil - |_ type : AddressType.both - |_ line - |_ extension - |_ Strasse - |_ Hausnummer - |_ Adresszusatz - |_ Postfach - |_ city - |_ postalCode - |_ country - |_ Postfach : Adresse // deutsches BasisprofilPattern - |_ type : AddressType.postal - |_ line - |_ extension - |_ Strasse - |_ Hausnummer - |_ Adresszusatz - |_ Postfach - |_ city - |_ postalCode - |_ country - } - - class ISiKBerichtBundle <<(P,#8DA5C4)>>{ - identifier - type : **document** - timestamp - entry - |_ fullUrl - |_ resource - |_ search - |_ request - |_ response - |_ Composition - |_ resource : **ISiKBerichtSubSysteme** - } - - class ISiKBerichtSubSysteme <<(P,#8DA5C4)>>{ - - } - - namespace Observations { - - class ISiKLebensZustand <<(P,#8DA5C4)>>{ - status : **ObservationStatus** - code - subject : Reference ( **Patient** | \nGroup | Device | Location) - |_ reference - effective[x] - value[x] - } - - class ISiKAlkoholAbusus <<(P,#8DA5C4)>>{ - category : secondary-finding **social-history** - code : snomed sct **15167005** - value[x] - |_ valueBoolean - } - - class ISiKRaucherStatus <<(P,#8DA5C4)>>{ - category : secondary-finding **social-history** - code : snomed sct **77176002** - value[x] - |_ valueBoolean - } - - class ISiKSchwangerschaftErwarteterEntbindungstermin <<(P,#8DA5C4)>>{ - code : **SchwangerschaftEtMethodeVS** - value[x] - |_ valueDateTime - } - - class ISiKSchwangerschaftsstatus <<(P,#8DA5C4)>>{ - code : loinc **82810-3** - value[x] - |_ valueCodeableConcept : **SchwangerschaftsstatusVS** - hasMember : Reference \n\t( **ISiKSchwangerschaftErwarteterEntbindungstermin** ) - |_ reference - } - - class ISiKStillstatus <<(P,#8DA5C4)>>{ - code : snomed sct **1260078007** - value[x] - |_ valueBoolean - } - - } namespace ValueSets { class ISiKAccountIdentifierType <<(V,#8DA5C4)>>{ @@ -257,7 +196,7 @@ namespace ISiK_Basis { namespace DE_Basisprofile_R4 { - class Basisprofile_DE <<(M,#FFAAAA)>>{ + class Basisprofile_Modul <<(M,#FFAAAA)>>{ Dokumentation auf HL7 Org [[https://simplifier.net/basisprofil-de-r4 Basisprofil DE (RE4)]] } @@ -348,19 +287,29 @@ namespace HL7_FHIR_R4_Core { [[https://hl7.org/fhir/R4/valueset-reaction-event-severity.html Reaction Eventu Severity]] Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-reaction-event-severity.html Code System of Severity]] } - - class ObservationCategoryCodes <<(V,#8DA5C4)>>{ + class ObservationCategory <<(V,#8DA5C4)>>{ Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-observation-category Observation Category]] - Includes all codes from the underlying code system - [[https://hl7.org/fhir/R4/codesystem-observation-category.html Code System of Observation Category]] + [[https://hl7.org/fhir/R4/valueset-observation-category.html Observation Category]] + Das entsprechende Standard-ValueSet beeinhatet das komplette \nCode System des zugehörigen [[https://hl7.org/fhir/R4/codesystem-observation-category.html Code System of Observation Category]] + } } - class ObservationStatus <<(V,#8DA5C4)>>{ - Dokumentation auf HL7 Org - [[https://hl7.org/fhir/R4/valueset-observation-status Observation Status]] - Includes all codes from the underlying code system - [[https://hl7.org/fhir/R4/codesystem-observation-status.html Code System of Observation Status]] +namespace ISiK_Basis { + class Basismodul_Stufe_4 <<(M,#FFDC36)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/~introduction ISiK Basis Stufe 3]] + } + class ISiKPatient <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpatient ISiK Patient]] + } + class ISiKKontaktGesundheitseinrichtung <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikkontaktgesundheitseinrichtung ISiK Kontakt Gesundheitseinrichtung]] + } + class ISiKPractitioner <<(P,#8DA5C4)>>{ + Dokumentation auf Simplifier + [[https://simplifier.net/isik-basis-v3/isikpersonimgesundheitsberuf ISiK Person im Gesundheitsberuf]] } } diff --git a/Material/images/src/plantuml/usecases.puml b/Material/images/src/plantuml/usecases.puml index d6d777ca..cd2dd2f7 100644 --- a/Material/images/src/plantuml/usecases.puml +++ b/Material/images/src/plantuml/usecases.puml @@ -66,7 +66,7 @@ storage adverseUC as "Adverse Use Cases" { (Merhfachdokumentation) (Dokumentationslücken) (Nicht-Verfügbarkeit) - (InformationsVerlust) + (Verlust) } storage techUC as "Technical Use Case" { diff --git a/Resources/fsh-generated/fsh-index.json b/Resources/fsh-generated/fsh-index.json index 1e25de0d..dc6e5daf 100644 --- a/Resources/fsh-generated/fsh-index.json +++ b/Resources/fsh-generated/fsh-index.json @@ -55,13 +55,21 @@ "startLine": 24, "endLine": 38 }, + { + "outputFile": "Bundle-SubscriptionNotificationBundleExample.json", + "fshName": "SubscriptionNotificationBundleExample", + "fshType": "Instance", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 93, + "endLine": 102 + }, { "outputFile": "CapabilityStatement-ISiKCapabilityStatementBasisServer.json", "fshName": "ISiKCapabilityStatementBasisServer", "fshType": "Instance", "fshFile": "ISiKCapabilityStatementBasisServer.fsh", "startLine": 1, - "endLine": 838 + "endLine": 810 }, { "outputFile": "CodeSystem-CodeSystemExample.json", @@ -199,13 +207,37 @@ "startLine": 115, "endLine": 125 }, + { + "outputFile": "Patient-DorisQuelle.json", + "fshName": "DorisQuelle", + "fshType": "Instance", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 46, + "endLine": 58 + }, + { + "outputFile": "Patient-DorisResultat.json", + "fshName": "DorisResultat", + "fshType": "Instance", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 74, + "endLine": 91 + }, + { + "outputFile": "Patient-DorisZiel.json", + "fshName": "DorisZiel", + "fshType": "Instance", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 60, + "endLine": 72 + }, { "outputFile": "Patient-PatientinMusterfrau.json", "fshName": "PatientinMusterfrau", "fshType": "Instance", "fshFile": "ISiKPatient.fsh", - "startLine": 116, - "endLine": 166 + "startLine": 122, + "endLine": 172 }, { "outputFile": "Patient-PatientinMusterfrauMinimal.json", @@ -349,7 +381,7 @@ "fshType": "Profile", "fshFile": "ISiKPatient.fsh", "startLine": 1, - "endLine": 114 + "endLine": 120 }, { "outputFile": "StructureDefinition-ISiKPersonImGesundheitsberuf.json", @@ -439,6 +471,22 @@ "startLine": 123, "endLine": 127 }, + { + "outputFile": "StructureDefinition-patient-merge-subscription.json", + "fshName": "PatientMergeSubscription", + "fshType": "Profile", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 2, + "endLine": 17 + }, + { + "outputFile": "Subscription-PatientMergeSubscriptionExample.json", + "fshName": "PatientMergeSubscriptionExample", + "fshType": "Instance", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 19, + "endLine": 30 + }, { "outputFile": "ValueSet-DiagnosesSCT.json", "fshName": "DiagnosesSCT", @@ -447,6 +495,14 @@ "startLine": 1, "endLine": 8 }, + { + "outputFile": "ValueSet-FhirMimeTypeVS.json", + "fshName": "FhirMimeTypeVS", + "fshType": "ValueSet", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 39, + "endLine": 44 + }, { "outputFile": "ValueSet-ISiKAccountType.json", "fshName": "ISiKAccountType", @@ -487,6 +543,14 @@ "startLine": 16, "endLine": 25 }, + { + "outputFile": "ValueSet-RestAndWSSubscriptionChannelType.json", + "fshName": "RestAndWSSubscriptionChannelType", + "fshType": "ValueSet", + "fshFile": "IsiKPatientMerge.fsh", + "startLine": 32, + "endLine": 37 + }, { "outputFile": "ValueSet-SchwangerschaftEtMethodeVS.json", "fshName": "SchwangerschaftEtMethodeVS", diff --git a/Resources/fsh-generated/fsh-index.txt b/Resources/fsh-generated/fsh-index.txt index dd43ad0d..d73147ab 100644 --- a/Resources/fsh-generated/fsh-index.txt +++ b/Resources/fsh-generated/fsh-index.txt @@ -6,7 +6,8 @@ Binary-Binary-JPEG-Example.json Binary- Binary-Binary-PDF-Example-short.json Binary-PDF-Example-short Instance ISiKBinary.fsh 23 - 28 Binary-Binary-PDF-Example.json Binary-PDF-Example Instance ISiKBinary.fsh 36 - 41 Bundle-ISiKBundle-Example.json ISiKBundle-Example Instance ISiKBerichtBundle.fsh 24 - 38 -CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatementBasisServer.fsh 1 - 838 +Bundle-SubscriptionNotificationBundleExample.json SubscriptionNotificationBundleExample Instance IsiKPatientMerge.fsh 93 - 102 +CapabilityStatement-ISiKCapabilityStatementBasisServer.json ISiKCapabilityStatementBasisServer Instance ISiKCapabilityStatementBasisServer.fsh 1 - 810 CodeSystem-CodeSystemExample.json CodeSystemExample Instance ISiKCodeSystem.fsh 17 - 27 Composition-composition-blutdruck.json composition-blutdruck Instance ISiKBerichtSubSysteme.fsh 66 - 83 Condition-BehandlungsDiagnoseFreitext.json BehandlungsDiagnoseFreitext Instance ISiKDiagnose.fsh 123 - 130 @@ -24,7 +25,10 @@ Observation-ISiKRaucherStatusBeispiel.json ISiKRau Observation-ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel.json ISiKSchwangerschaftErwarteterEntbindungsterminBeispiel Instance ISiKLebenszustandOberservations.fsh 52 - 61 Observation-ISiKSchwangerschaftsstatusBeispiel.json ISiKSchwangerschaftsstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 32 - 41 Observation-ISiKStillstatusBeispiel.json ISiKStillstatusBeispiel Instance ISiKLebenszustandOberservations.fsh 115 - 125 -Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 116 - 166 +Patient-DorisQuelle.json DorisQuelle Instance IsiKPatientMerge.fsh 46 - 58 +Patient-DorisResultat.json DorisResultat Instance IsiKPatientMerge.fsh 74 - 91 +Patient-DorisZiel.json DorisZiel Instance IsiKPatientMerge.fsh 60 - 72 +Patient-PatientinMusterfrau.json PatientinMusterfrau Instance ISiKPatient.fsh 122 - 172 Patient-PatientinMusterfrauMinimal.json PatientinMusterfrauMinimal Instance ISiKBerichtBundle.fsh 41 - 53 Practitioner-PractitionerWalterArzt.json PractitionerWalterArzt Instance ISiKPersonImGesundheitsberuf.fsh 93 - 128 Procedure-Appendektomie.json Appendektomie Instance ISiKProzedur.fsh 52 - 65 @@ -42,7 +46,7 @@ StructureDefinition-ISiKCodeSystem.json ISiKCod StructureDefinition-ISiKDiagnose.json ISiKDiagnose Profile ISiKDiagnose.fsh 1 - 55 StructureDefinition-ISiKKontaktGesundheitseinrichtung.json ISiKKontaktGesundheitseinrichtung Profile ISiKKontaktGesundheitseinrichtung.fsh 1 - 120 StructureDefinition-ISiKLebensZustand.json ISiKLebensZustand Profile ISiKLebenszustandOberservations.fsh 1 - 15 -StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 114 +StructureDefinition-ISiKPatient.json ISiKPatient Profile ISiKPatient.fsh 1 - 120 StructureDefinition-ISiKPersonImGesundheitsberuf.json ISiKPersonImGesundheitsberuf Profile ISiKPersonImGesundheitsberuf.fsh 1 - 89 StructureDefinition-ISiKProzedur.json ISiKProzedur Profile ISiKProzedur.fsh 1 - 50 StructureDefinition-ISiKRaucherStatus.json ISiKRaucherStatus Profile ISiKLebenszustandOberservations.fsh 84 - 92 @@ -54,11 +58,15 @@ StructureDefinition-ISiKVersicherungsverhaeltnisGesetzlich.json ISiKVer StructureDefinition-ISiKVersicherungsverhaeltnisSelbstzahler.json ISiKVersicherungsverhaeltnisSelbstzahler Profile ISiKVersicherungsverhaeltnisSelbstzahler.fsh 1 - 14 StructureDefinition-PlannedEndDate.json PlannedEndDate Extension ISiKKontaktGesundheitseinrichtung.fsh 130 - 134 StructureDefinition-PlannedStartDate.json PlannedStartDate Extension ISiKKontaktGesundheitseinrichtung.fsh 123 - 127 +StructureDefinition-patient-merge-subscription.json PatientMergeSubscription Profile IsiKPatientMerge.fsh 2 - 17 +Subscription-PatientMergeSubscriptionExample.json PatientMergeSubscriptionExample Instance IsiKPatientMerge.fsh 19 - 30 ValueSet-DiagnosesSCT.json DiagnosesSCT ValueSet valueSets.fsh 1 - 8 +ValueSet-FhirMimeTypeVS.json FhirMimeTypeVS ValueSet IsiKPatientMerge.fsh 39 - 44 ValueSet-ISiKAccountType.json ISiKAccountType ValueSet valueSets.fsh 35 - 40 ValueSet-ISiKLocationPhysicalType.json ISiKLocationPhysicalType ValueSet valueSets.fsh 27 - 32 ValueSet-ISiKValueSetExample.json ISiKValueSetExample Instance ISiKValueSet.fsh 24 - 37 ValueSet-ProzedurenCodesSCT.json ProzedurenCodesSCT ValueSet valueSets.fsh 10 - 14 ValueSet-ProzedurenKategorieSCT.json ProzedurenKategorieSCT ValueSet valueSets.fsh 16 - 25 +ValueSet-RestAndWSSubscriptionChannelType.json RestAndWSSubscriptionChannelType ValueSet IsiKPatientMerge.fsh 32 - 37 ValueSet-SchwangerschaftEtMethodeVS.json SchwangerschaftEtMethodeVS ValueSet valueSets.fsh 50 - 56 ValueSet-SchwangerschaftsstatusVS.json SchwangerschaftsstatusVS ValueSet valueSets.fsh 42 - 48 \ No newline at end of file diff --git a/Resources/fsh-generated/resources/Bundle-SubscriptionNotificationBundleExample.json b/Resources/fsh-generated/resources/Bundle-SubscriptionNotificationBundleExample.json new file mode 100644 index 00000000..ab858182 --- /dev/null +++ b/Resources/fsh-generated/resources/Bundle-SubscriptionNotificationBundleExample.json @@ -0,0 +1,116 @@ +{ + "resourceType": "Bundle", + "id": "SubscriptionNotificationBundleExample", + "type": "history", + "entry": [ + { + "fullUrl": "urn:uuid:9bb6fcbd-8391-4e35-bd4c-620a2db47af0", + "resource": { + "resourceType": "Parameters", + "id": "SubscriptionNotification", + "meta": { + "profile": [ + "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4" + ] + }, + "parameter": [ + { + "name": "subscription", + "valueReference": { + "reference": "Subscription/1" + } + }, + { + "name": "topic", + "valueCanonical": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" + }, + { + "name": "status", + "valueCode": "active" + }, + { + "name": "type", + "valueCode": "event-notification" + }, + { + "name": "events-since-subscription-start", + "valueString": "1" + }, + { + "name": "notification-event", + "part": [ + { + "name": "event-number", + "valueString": "1" + }, + { + "name": "timestamp", + "valueDate": "2024-02-22" + }, + { + "name": "focus", + "valueReference": { + "reference": "Patient/DorisQuelle" + } + } + ] + } + ] + } + }, + { + "fullUrl": "http://example.com/fhir/Patient/DorisQuelle/_history/2", + "resource": { + "resourceType": "Patient", + "id": "DorisQuelle", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" + ] + }, + "identifier": [ + { + "type": { + "coding": [ + { + "code": "MR", + "system": "http://terminology.hl7.org/CodeSystem/v2-0203" + } + ] + }, + "system": "https://fhir.krankenhaus.example/sid/PID", + "value": "654321" + }, + { + "system": "http://fhir.de/sid/gkv/kvid-10", + "type": { + "coding": [ + { + "code": "GKV", + "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" + } + ] + }, + "value": "A123456789" + } + ], + "name": [ + { + "use": "official", + "family": "Duplikat", + "given": [ + "Doris" + ] + } + ], + "active": false, + "gender": "female", + "birthDate": "1964-08-12" + }, + "request": { + "method": "PUT", + "url": "Patient/DorisQuelle" + } + } + ] +} diff --git a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json index 63429a3b..86e5a53b 100644 --- a/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json +++ b/Resources/fsh-generated/resources/CapabilityStatement-ISiKCapabilityStatementBasisServer.json @@ -235,8 +235,7 @@ "Coverage:patient", "Coverage:payor", "Account:subject", - "Account:patient", - "AllergyIntolerance:patient" + "Account:patient" ], "_searchRevInclude": [ { @@ -351,14 +350,6 @@ } ] }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ] - }, { "extension": [ { @@ -1789,205 +1780,96 @@ "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], - "type": "AllergyIntolerance", + "type": "Composition", "supportedProfile": [ - "https://gematik.de/fhir/isik/StructureDefinition/ISiKAllergieUnvertraeglichkeit" - ], - "interaction": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "read" - }, + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" + ] + }, + { + "extension": [ { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "code": "search-type" + "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", + "valueCode": "SHALL" } ], - "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": "clinical-status", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-clinical-status", - "type": "token" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "patient", - "definition": "http://hl7.org/fhir/SearchParameter/clinical-patient", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "asserter", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-asserter", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "recorder", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-recorder", - "type": "reference" - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "onset", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-onset", - "type": "date" - }, + "type": "Bundle", + "supportedProfile": [ + "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" + ] + }, + { + "extension": [ { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ], - "name": "date", - "definition": "http://hl7.org/fhir/SearchParameter/conformance-date", - "type": "date" - }, + "url": "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/capabilitystatement-subscriptiontopic-canonical", + "valueCode": "MAY", + "valueCanonical": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" + } + ], + "type": "Subscription", + "supportedProfile": [ + "https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription" + ], + "_supportedProfile": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", "valueCode": "MAY" } - ], - "name": "_profile", - "definition": "http://hl7.org/fhir/SearchParameter/Resource-profile", - "type": "token" - }, + ] + } + ], + "interaction": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], - "name": "category", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-category", - "type": "token" + "code": "read" }, { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], - "name": "criticality", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-criticality", - "type": "token" + "code": "create" }, { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], - "name": "type", - "definition": "http://hl7.org/fhir/SearchParameter/clinical-type", - "type": "token" + "code": "update" }, { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } ], - "name": "verification-status", - "definition": "http://hl7.org/fhir/SearchParameter/AllergyIntolerance-verification-status", - "type": "token" + "code": "delete" } ], - "searchInclude": [ - "AllergyIntolerance:patient", - "AllergyIntolerance:encounter", - "AllergyIntolerance:recorder", - "AllergyIntolerance:asserter" - ], - "_searchInclude": [ - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ] - }, + "operation": [ { "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" - } - ] - }, - { - "extension": [ - { - "url": "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation", - "valueCode": "SHALL" + "valueCode": "MAY" } - ] + ], + "name": "$get-ws-binding-token", + "definition": "http://hl7.org/fhir/uv/subscriptions-backport/OperationDefinition/backport-subscription-get-ws-binding-token" } ] } diff --git a/Resources/fsh-generated/resources/Patient-DorisQuelle.json b/Resources/fsh-generated/resources/Patient-DorisQuelle.json new file mode 100644 index 00000000..4339a2a0 --- /dev/null +++ b/Resources/fsh-generated/resources/Patient-DorisQuelle.json @@ -0,0 +1,47 @@ +{ + "resourceType": "Patient", + "id": "DorisQuelle", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" + ] + }, + "identifier": [ + { + "type": { + "coding": [ + { + "code": "MR", + "system": "http://terminology.hl7.org/CodeSystem/v2-0203" + } + ] + }, + "system": "https://fhir.krankenhaus.example/sid/PID", + "value": "654321" + }, + { + "system": "http://fhir.de/sid/gkv/kvid-10", + "type": { + "coding": [ + { + "code": "GKV", + "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" + } + ] + }, + "value": "A123456789" + } + ], + "name": [ + { + "use": "official", + "family": "Duplikat", + "given": [ + "Doris" + ] + } + ], + "active": false, + "gender": "female", + "birthDate": "1964-08-12" +} diff --git a/Resources/fsh-generated/resources/Patient-DorisResultat.json b/Resources/fsh-generated/resources/Patient-DorisResultat.json new file mode 100644 index 00000000..aad98dd7 --- /dev/null +++ b/Resources/fsh-generated/resources/Patient-DorisResultat.json @@ -0,0 +1,58 @@ +{ + "resourceType": "Patient", + "id": "DorisResultat", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" + ] + }, + "identifier": [ + { + "type": { + "coding": [ + { + "code": "MR", + "system": "http://terminology.hl7.org/CodeSystem/v2-0203" + } + ] + }, + "system": "https://fhir.krankenhaus.example/sid/PID", + "value": "123456" + }, + { + "system": "http://fhir.de/sid/gkv/kvid-10", + "type": { + "coding": [ + { + "code": "GKV", + "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" + } + ] + }, + "value": "A123456789" + } + ], + "name": [ + { + "use": "official", + "family": "Duplikat", + "given": [ + "Doris" + ] + } + ], + "active": true, + "gender": "female", + "birthDate": "1964-08-12", + "link": [ + { + "other": { + "identifier": { + "system": "https://fhir.krankenhaus.example/sid/PID", + "value": "654321" + } + }, + "type": "replaces" + } + ] +} diff --git a/Resources/fsh-generated/resources/Patient-DorisZiel.json b/Resources/fsh-generated/resources/Patient-DorisZiel.json new file mode 100644 index 00000000..62af907c --- /dev/null +++ b/Resources/fsh-generated/resources/Patient-DorisZiel.json @@ -0,0 +1,47 @@ +{ + "resourceType": "Patient", + "id": "DorisZiel", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" + ] + }, + "identifier": [ + { + "type": { + "coding": [ + { + "code": "MR", + "system": "http://terminology.hl7.org/CodeSystem/v2-0203" + } + ] + }, + "system": "https://fhir.krankenhaus.example/sid/PID", + "value": "123456" + }, + { + "system": "http://fhir.de/sid/gkv/kvid-10", + "type": { + "coding": [ + { + "code": "GKV", + "system": "http://fhir.de/CodeSystem/identifier-type-de-basis" + } + ] + }, + "value": "A123456789" + } + ], + "name": [ + { + "use": "official", + "family": "Duplikat", + "given": [ + "Doris" + ] + } + ], + "active": true, + "gender": "female", + "birthDate": "1964-08-12" +} diff --git a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json index bf5e814e..1ebbad14 100644 --- a/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json +++ b/Resources/fsh-generated/resources/StructureDefinition-ISiKPatient.json @@ -256,7 +256,7 @@ ], "rules": "open" }, - "comment": "In order to maintain the differntiations of name parts as given in the VSDM dataset or qualify prefixes as academic titles, vendors can opt to support the extensions specified in the German HumanName Base Profile https://simplifier.net/basisprofil-de-r4/humannamedebasis\r\nThis is however not required within the scope of this specification.", + "comment": "In order to maintain the differentiations of name parts as given in the VSDM dataset or qualify prefixes as academic titles, vendors can opt to support the extensions specified in the German HumanName Base Profile https://simplifier.net/basisprofil-de-r4/humannamedebasis\r\nThis is however not required within the scope of this specification.", "min": 1, "mustSupport": true }, @@ -634,6 +634,28 @@ "path": "Patient.address.country", "min": 1, "mustSupport": true + }, + { + "id": "Patient.link", + "path": "Patient.link", + "comment": "Dieses und untergeordnete Elemente KÖNNEN bei einem erfolgten Patient merge entsprechend der Festlegungen im Implementation Guide befüllt werden. Da das Element der Unterstützung der Patient merge Notification dient, MUSS es im Rahmen des Bestätigungsverfahrens NICHT unterstützt werden (Stand: Stufe 4).", + "mustSupport": true + }, + { + "id": "Patient.link.other", + "path": "Patient.link.other", + "mustSupport": true + }, + { + "id": "Patient.link.other.identifier", + "path": "Patient.link.other.identifier", + "comment": "Logischer Verweis auf Identifier[Patientennummer]", + "mustSupport": true + }, + { + "id": "Patient.link.type", + "path": "Patient.link.type", + "mustSupport": true } ] } diff --git a/Resources/fsh-generated/resources/StructureDefinition-patient-merge-subscription.json b/Resources/fsh-generated/resources/StructureDefinition-patient-merge-subscription.json new file mode 100644 index 00000000..a77effdf --- /dev/null +++ b/Resources/fsh-generated/resources/StructureDefinition-patient-merge-subscription.json @@ -0,0 +1,80 @@ +{ + "resourceType": "StructureDefinition", + "id": "patient-merge-subscription", + "url": "https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription", + "name": "PatientMergeSubscription", + "title": "Patient Merge Subscription", + "status": "draft", + "description": "Patient Merge Subscription", + "fhirVersion": "4.3.0", + "mapping": [ + { + "identity": "rim", + "uri": "http://hl7.org/v3", + "name": "RIM Mapping" + }, + { + "identity": "w5", + "uri": "http://hl7.org/fhir/fivews", + "name": "FiveWs Pattern Mapping" + } + ], + "kind": "resource", + "abstract": false, + "type": "Subscription", + "baseDefinition": "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription", + "derivation": "constraint", + "differential": { + "element": [ + { + "id": "Subscription.status", + "path": "Subscription.status", + "mustSupport": true + }, + { + "id": "Subscription.reason", + "path": "Subscription.reason", + "mustSupport": true + }, + { + "id": "Subscription.criteria", + "path": "Subscription.criteria", + "patternString": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" + }, + { + "id": "Subscription.channel", + "path": "Subscription.channel", + "mustSupport": true + }, + { + "id": "Subscription.channel.type", + "path": "Subscription.channel.type", + "mustSupport": true, + "binding": { + "strength": "required", + "valueSet": "https://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType" + } + }, + { + "id": "Subscription.channel.endpoint", + "path": "Subscription.channel.endpoint", + "mustSupport": true + }, + { + "id": "Subscription.channel.payload", + "path": "Subscription.channel.payload", + "mustSupport": true, + "binding": { + "strength": "required", + "valueSet": "https://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS" + } + }, + { + "id": "Subscription.channel.header", + "path": "Subscription.channel.header", + "short": "Falls eine REST-Enpunkt einen Authorization-Header benötigt, kann dieser hier gesetzt werden", + "mustSupport": true + } + ] + } +} diff --git a/Resources/fsh-generated/resources/Subscription-PatientMergeSubscriptionExample.json b/Resources/fsh-generated/resources/Subscription-PatientMergeSubscriptionExample.json new file mode 100644 index 00000000..99c33fc2 --- /dev/null +++ b/Resources/fsh-generated/resources/Subscription-PatientMergeSubscriptionExample.json @@ -0,0 +1,28 @@ +{ + "resourceType": "Subscription", + "id": "PatientMergeSubscriptionExample", + "meta": { + "profile": [ + "https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription" + ] + }, + "criteria": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge", + "channel": { + "type": "rest-hook", + "endpoint": "http://localhost:8081/fhir/Bundle", + "payload": "application/fhir+json", + "_payload": { + "extension": [ + { + "url": "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content", + "valueCode": "full-resource" + } + ] + }, + "header": [ + "Authorization: Bearer xxxxxxxxxx" + ] + }, + "status": "requested", + "reason": "Patient merge subscription" +} diff --git a/Resources/fsh-generated/resources/ValueSet-FhirMimeTypeVS.json b/Resources/fsh-generated/resources/ValueSet-FhirMimeTypeVS.json new file mode 100644 index 00000000..3c7a5bce --- /dev/null +++ b/Resources/fsh-generated/resources/ValueSet-FhirMimeTypeVS.json @@ -0,0 +1,24 @@ +{ + "resourceType": "ValueSet", + "status": "draft", + "name": "FhirMimeTypeVS", + "id": "FhirMimeTypeVS", + "title": "FhirMimeTypeVS", + "description": "FHIR Mime Types", + "url": "https://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS", + "compose": { + "include": [ + { + "system": "urn:ietf:bcp:13", + "concept": [ + { + "code": "application/fhir+json" + }, + { + "code": "application/fhir+xml" + } + ] + } + ] + } +} diff --git a/Resources/fsh-generated/resources/ValueSet-RestAndWSSubscriptionChannelType.json b/Resources/fsh-generated/resources/ValueSet-RestAndWSSubscriptionChannelType.json new file mode 100644 index 00000000..179f519f --- /dev/null +++ b/Resources/fsh-generated/resources/ValueSet-RestAndWSSubscriptionChannelType.json @@ -0,0 +1,24 @@ +{ + "resourceType": "ValueSet", + "status": "draft", + "name": "RestAndWSSubscriptionChannelType", + "id": "RestAndWSSubscriptionChannelType", + "title": "RestAndWSSubscriptionChannelType", + "description": "Subscription Channel Type for ISiK", + "url": "https://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType", + "compose": { + "include": [ + { + "system": "http://hl7.org/fhir/subscription-channel-type", + "concept": [ + { + "code": "rest-hook" + }, + { + "code": "websocket" + } + ] + } + ] + } +} diff --git a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh index 6d9df146..9f6c46cd 100644 --- a/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh +++ b/Resources/input/fsh/ISiKCapabilityStatementBasisServer.fsh @@ -832,6 +832,41 @@ Usage: #definition * searchInclude[+] = "AllergyIntolerance:asserter" * extension.url = $capabilitystatement-expectation * extension.valueCode = #SHALL +* rest.resource[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].extension.valueCode = #MAY +* rest.resource[=].type = #Composition +* rest.resource[=].supportedProfile = "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtSubSysteme" +* rest.resource[+].extension.url = $capabilitystatement-expectation +* rest.resource[=].extension.valueCode = #SHALL +* rest.resource[=].type = #Bundle +* rest.resource[=].supportedProfile[+] = "https://gematik.de/fhir/isik/StructureDefinition/ISiKBerichtBundle" + +//TopicBased Subscription Backport (https://hl7.org/fhir/uv/subscriptions-backport/) +* rest.resource[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].extension.valueCode = #MAY +* rest.resource[=].extension.url = Canonical(CapabilityStatementSubscriptionTopic) +* rest.resource[=].extension.valueCanonical = $patient-merge-topic +* rest.resource[=].type = #Subscription +* rest.resource[=].supportedProfile = Canonical(PatientMergeSubscription) +* rest.resource[=].supportedProfile.extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].supportedProfile.extension.valueCode = #MAY +* rest.resource[=].interaction[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].interaction[=].extension.valueCode = #MAY +* rest.resource[=].interaction[=].code = #read +* rest.resource[=].interaction[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].interaction[=].extension.valueCode = #MAY +* rest.resource[=].interaction[=].code = #create +* rest.resource[=].interaction[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].interaction[=].extension.valueCode = #MAY +* rest.resource[=].interaction[=].code = #update +* rest.resource[=].interaction[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].interaction[=].extension.valueCode = #MAY +* rest.resource[=].interaction[=].code = #delete +* rest.resource[=].operation[+].extension.url = "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation" +* rest.resource[=].operation[=].extension.valueCode = #MAY +* rest.resource[=].operation[=].name = "$get-ws-binding-token" +* rest.resource[=].operation[=].definition = "http://hl7.org/fhir/uv/subscriptions-backport/OperationDefinition/backport-subscription-get-ws-binding-token" + * document.extension.url = $capabilitystatement-expectation * document.extension.valueCode = #SHALL * document.mode = #consumer diff --git a/Resources/input/fsh/ISiKPatient.fsh b/Resources/input/fsh/ISiKPatient.fsh index 7cd90b3d..59d59bd0 100644 --- a/Resources/input/fsh/ISiKPatient.fsh +++ b/Resources/input/fsh/ISiKPatient.fsh @@ -47,7 +47,7 @@ Description: "Dieses Profil beschreibt die Nutzung von administrativen Patienten * ^slicing.discriminator.type = #pattern * ^slicing.discriminator.path = "$this" * ^slicing.rules = #open - * ^comment = "In order to maintain the differntiations of name parts as given in the VSDM dataset or qualify prefixes as academic titles, vendors can opt to support the extensions specified in the German HumanName Base Profile https://simplifier.net/basisprofil-de-r4/humannamedebasis\r\nThis is however not required within the scope of this specification." + * ^comment = "In order to maintain the differentiations of name parts as given in the VSDM dataset or qualify prefixes as academic titles, vendors can opt to support the extensions specified in the German HumanName Base Profile https://simplifier.net/basisprofil-de-r4/humannamedebasis\r\nThis is however not required within the scope of this specification." * name contains Name 1..1 MS and Geburtsname 0..1 MS @@ -112,6 +112,12 @@ Description: "Dieses Profil beschreibt die Nutzung von administrativen Patienten * city 1.. MS * postalCode 1.. MS * country 1.. MS +* link MS + * ^comment = "Dieses und untergeordnete Elemente KÖNNEN bei einem erfolgten Patient merge entsprechend der Festlegungen im Implementation Guide befüllt werden. Da das Element der Unterstützung der Patient merge Notification dient, MUSS es im Rahmen des Bestätigungsverfahrens NICHT unterstützt werden (Stand: Stufe 4)." + * other MS + * identifier MS + * ^comment = "Logischer Verweis auf Identifier[Patientennummer]" + * type MS Instance: PatientinMusterfrau InstanceOf: ISiKPatient diff --git a/Resources/input/fsh/IsiKPatientMerge.fsh b/Resources/input/fsh/IsiKPatientMerge.fsh new file mode 100644 index 00000000..49db80f2 --- /dev/null +++ b/Resources/input/fsh/IsiKPatientMerge.fsh @@ -0,0 +1,125 @@ + +Profile: PatientMergeSubscription +Parent: BackportSubscription +Id: patient-merge-subscription +Title: "Patient Merge Subscription" +Description: "Patient Merge Subscription" +* status MS +* reason MS +* criteria = $patient-merge-topic +* channel MS + * type MS + * type from RestAndWSSubscriptionChannelType + * endpoint MS + * payload MS + * payload from FhirMimeTypeVS + * header MS + * ^short = "Falls eine REST-Enpunkt einen Authorization-Header benötigt, kann dieser hier gesetzt werden" + +Instance: PatientMergeSubscriptionExample +InstanceOf: PatientMergeSubscription +Usage: #example +* status = #requested +* reason = "Patient merge subscription" +* criteria = "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" +* channel + * type = #rest-hook + * endpoint = "http://localhost:8081/fhir/Bundle" + * payload = #application/fhir+json + * extension[content].valueCode = #full-resource + * header = "Authorization: Bearer xxxxxxxxxx" + +ValueSet: RestAndWSSubscriptionChannelType +Id: RestAndWSSubscriptionChannelType +Title: "RestAndWSSubscriptionChannelType" +Description: "Subscription Channel Type for ISiK" +* SubscriptionChannelType#rest-hook +* SubscriptionChannelType#websocket + +ValueSet: FhirMimeTypeVS +Id: FhirMimeTypeVS +Title: "FhirMimeTypeVS" +Description: "FHIR Mime Types" +* urn:ietf:bcp:13#application/fhir+json +* urn:ietf:bcp:13#application/fhir+xml + +Instance: DorisQuelle +InstanceOf: ISiKPatient +Usage: #example +* identifier[VersichertenId-GKV].system = "http://fhir.de/sid/gkv/kvid-10" +* identifier[VersichertenId-GKV].value = "A123456789" +* identifier[Patientennummer].system = "https://fhir.krankenhaus.example/sid/PID" +* identifier[Patientennummer].value = "654321" +* active = false +* name[Name] + * family = "Duplikat" + * given = "Doris" +* gender = #female +* birthDate = "1964-08-12" + +Instance: DorisZiel +InstanceOf: ISiKPatient +Usage: #example +* identifier[VersichertenId-GKV].system = "http://fhir.de/sid/gkv/kvid-10" +* identifier[VersichertenId-GKV].value = "A123456789" +* identifier[Patientennummer].system = "https://fhir.krankenhaus.example/sid/PID" +* identifier[Patientennummer].value = "123456" +* active = true +* name[Name] + * family = "Duplikat" + * given = "Doris" +* gender = #female +* birthDate = "1964-08-12" + +Instance: DorisResultat +InstanceOf: ISiKPatient +Usage: #example +* identifier[VersichertenId-GKV].system = "http://fhir.de/sid/gkv/kvid-10" +* identifier[VersichertenId-GKV].value = "A123456789" +* identifier[Patientennummer].system = "https://fhir.krankenhaus.example/sid/PID" +* identifier[Patientennummer].value = "123456" +* active = true +* name[Name] + * family = "Duplikat" + * given = "Doris" +* gender = #female +* birthDate = "1964-08-12" +* link + * other.identifier + * system = "https://fhir.krankenhaus.example/sid/PID" + * value = "654321" + * type = #replaces + +Instance: SubscriptionNotificationBundleExample +InstanceOf: Bundle +Usage: #example +* type = #history +* entry[+].fullUrl = "urn:uuid:9bb6fcbd-8391-4e35-bd4c-620a2db47af0" +* entry[=].resource = SubscriptionNotification +* entry[+].fullUrl = "http://example.com/fhir/Patient/DorisQuelle/_history/2" +* entry[=].resource = DorisQuelle +* entry[=].request.method = #PUT +* entry[=].request.url = "Patient/DorisQuelle" + +Instance: SubscriptionNotification +InstanceOf: Parameters +Usage: #inline +* meta.profile = "http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4" +* parameter[+].name = "subscription" +* parameter[=].valueReference = Reference(Subscription/1) +* parameter[+].name = "topic" +* parameter[=].valueCanonical = "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" +* parameter[+].name = "status" +* parameter[=].valueCode = #active +* parameter[+].name = "type" +* parameter[=].valueCode = #event-notification +* parameter[+].name = "events-since-subscription-start" +* parameter[=].valueString = "1" +* parameter[+].name = "notification-event" +* parameter[=].part[0].name = "event-number" +* parameter[=].part[=].valueString = "1" +* parameter[=].part[+].name = "timestamp" +* parameter[=].part[=].valueDate = "2024-02-22" +* parameter[=].part[+].name = "focus" +* parameter[=].part[=].valueReference = Reference(DorisQuelle) + diff --git a/Resources/input/fsh/aliases.fsh b/Resources/input/fsh/aliases.fsh index 93f91ec2..d7b0154a 100644 --- a/Resources/input/fsh/aliases.fsh +++ b/Resources/input/fsh/aliases.fsh @@ -36,5 +36,6 @@ Alias: $ProzedurenCodesSCT = https://gematik.de/fhir/isik/ValueSet/ProzedurenCod Alias: $capabilitystatement-expectation = http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation Alias: $kvid10 = http://fhir.de/sid/gkv/kvid-10 Alias: $kvnr30 = http://fhir.de/sid/gkv/kvnr-30 +Alias: $patient-merge-topic = https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge Alias: $vsAllergyIntoleranceClinicalStatus = http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical Alias: $vsAllergyIntoleranceVerificationStatus = http://terminology.hl7.org/CodeSystem/allergyintolerance-verification diff --git a/Resources/sushi-config.yaml b/Resources/sushi-config.yaml index b1e08964..89f17d48 100644 --- a/Resources/sushi-config.yaml +++ b/Resources/sushi-config.yaml @@ -1,8 +1,9 @@ -canonical: https://gematik.de/fhir/isik -fhirVersion: 4.0.1 -FSHOnly: true -applyExtensionMetadataToRoot: false -dependencies: - de.basisprofil.r4: 1.5.0-ballot2 - hl7.fhir.r4.core: 4.0.1 - hl7.fhir.extensions.r5: 4.0.1 +canonical: https://gematik.de/fhir/isik +fhirVersion: 4.0.1 +FSHOnly: true +applyExtensionMetadataToRoot: false +dependencies: + de.basisprofil.r4: 1.5.0-ballot2 + hl7.fhir.r4.core: 4.0.1 + hl7.fhir.extensions.r5: 4.0.1 + hl7.fhir.uv.subscriptions-backport: 1.1.0 diff --git a/package.json b/package.json index fda67616..71902d11 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "4.0.1" ], "dependencies": { - "de.basisprofil.r4": "1.5.0-ballot2" + "de.basisprofil.r4": "1.5.0-ballot2", + "hl7.fhir.uv.subscriptions-backport": "1.1.0" } } \ No newline at end of file