Subscription patient-merge (R5 Backport Subscription)


Patient Merge Subscription

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.

Siehe auch: Use Case 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 genutzt werden.

Kompatibilität

Das Profil PatientMergeSubscription basiert auf dem Backport-Subscription Profil.
Der SubscriptionStatus, sowie das Subscription Notification Bundle werden unverändert direkt aus dem Subscriptions R5 Backport IG genutzt.

Hinweise zu Inkompatibilitäten können über die Portalseite gemeldet werden.

Metadaten

Canonicalhttps://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription
Statusactive
Version4.0.1
Basishttp://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription

Inhalt

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
statusS Σ ?!1..1codeBinding
contactΣ I0..*ContactPoint
endΣ0..1instant
reasonS Σ1..1string
id0..1string
filterCriteriaS Σ I0..*Extension(string)
value0..1System.String
errorΣ0..1string
id0..1string
heartbeatPeriodI0..1Extension(unsignedInt)
timeoutI0..1Extension(unsignedInt)
maxCountI0..1Extension(positiveInt)
modifierExtensionΣ ?! I0..*Extension
id0..1string
customChannelTypeS Σ I0..1Extension(Coding)
value0..1System.String
endpointS Σ0..1url
id0..1string
contentS Σ I1..1Extension(code)
value0..1System.String
headerS Σ0..*string
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="patient-merge-subscription" />
    <url value="https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription" />
    <version value="4.0.1" />
    <name value="PatientMergeSubscription" />
    <title value="Patient Merge Subscription" />
    <status value="active" />
    <experimental value="false" />
    <date value="2024-11-25" />
    <publisher value="gematik GmbH" />
    <description value="Patient Merge Subscription  \n### Motivation\n\nSubscription ist eine FHIR Ressource, um als Client-System Benachrichtigungen &#252;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&#252;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).\n\nSiehe auch: {{pagelink:Patient-merge, text:Use Case Patient-merge}}\n\nUm als Subsystem &#252;ber ein Patienten-Merge-Event informiert zu werden, KANN der FHIR Subscription Mechanismus gem&#228;&#223; des [Subscriptions R5 Backport IGs von HL7](https://hl7.org/fhir/uv/subscriptions-backport/STU1.1/index.html) genutzt werden.\n\n### Kompatibilit&#228;t\n\nDas Profil PatientMergeSubscription basiert auf dem [Backport-Subscription Profil](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription.html).  \nDer [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&#228;ndert direkt aus dem [Subscriptions R5 Backport IG](https://hl7.org/fhir/uv/subscriptions-backport/index.html) genutzt.  \n\nHinweise zu Inkompatibilit&#228;ten k&#246;nnen &#252;ber die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden." />
    <fhirVersion value="4.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Subscription" />
    <baseDefinition value="http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription" />
    <derivation value="constraint" />
    <differential>
        <element id="Subscription.status">
            <path value="Subscription.status" />
            <comment value="**Bedeutung:** Der Status der Subscription, der den Serverstatus der Subscription angibt. \n  Neue Subscriptions werden immer mit dem Status `requested` an den Server &#252;bergeben. \n  Der Server &#228;ndert im Anschluss den Status auf `active` oder im Fehlerfall auf `error`.  \n  **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
            <mustSupport value="true" />
        </element>
        <element id="Subscription.reason">
            <path value="Subscription.reason" />
            <comment value="**Bedeutung:** Beschreibung wieso diese Subscription erstellt wurde.  \n  **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
            <mustSupport value="true" />
        </element>
        <element id="Subscription.criteria">
            <path value="Subscription.criteria" />
            <patternString value="https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" />
        </element>
        <element id="Subscription.channel">
            <path value="Subscription.channel" />
            <mustSupport value="true" />
        </element>
        <element id="Subscription.channel.type">
            <path value="Subscription.channel.type" />
            <mustSupport value="true" />
            <binding>
                <strength value="required" />
                <valueSet value="https://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType" />
            </binding>
        </element>
        <element id="Subscription.channel.endpoint">
            <path value="Subscription.channel.endpoint" />
            <comment value="**Bedeutung:** Adresse des Kommunikationskanals/ Endpunkts, an den Subscription-Benachrichtigungen gesendet werden sollen. Dies ist nur f&#252;r rest-hook Subscriptions relevant.  \n    **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
            <mustSupport value="true" />
        </element>
        <element id="Subscription.channel.payload">
            <path value="Subscription.channel.payload" />
            <comment value="**Bedeutung:** Format in dem Subscription Notifications versendet werden sollen (JSON oder XML)\n    **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
            <mustSupport value="true" />
            <binding>
                <strength value="required" />
                <valueSet value="https://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS" />
            </binding>
        </element>
        <element id="Subscription.channel.header">
            <path value="Subscription.channel.header" />
            <short value="Falls eine REST-Enpunkt einen Authorization-Header ben&#246;tigt, kann dieser hier gesetzt werden" />
            <comment value="**Bedeutung:** http-Header welcher dazu genutzt werden kann einen Authorization-header zu setzen. Dies ist nur f&#252;r rest-hook Subscriptions relevant.  \n    **Hinweise:** ACHTUNG: dieses Datenfeld muss bei READ-Interaktionen maskiert werden! Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)" />
            <mustSupport value="true" />
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "patient-merge-subscription",
    "url": "https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription",
    "version": "4.0.1",
    "name": "PatientMergeSubscription",
    "title": "Patient Merge Subscription",
    "status": "active",
    "experimental": false,
    "date": "2024-11-25",
    "publisher": "gematik GmbH",
    "description": "Patient Merge Subscription  \n### Motivation\n\nSubscription 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).\n\nSiehe auch: {{pagelink:Patient-merge, text:Use Case Patient-merge}}\n\nUm 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.\n\n### Kompatibilität\n\nDas Profil PatientMergeSubscription basiert auf dem [Backport-Subscription Profil](https://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition-backport-subscription.html).  \nDer [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.  \n\nHinweise zu Inkompatibilitäten können über die [Portalseite](https://service.gematik.de/servicedesk/customer/portal/16) gemeldet werden.",
    "fhirVersion": "4.0.1",
    "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",
                "short": "",
                "comment": "**Bedeutung:** Der Status der Subscription, der den Serverstatus der Subscription angibt. \n  Neue Subscriptions werden immer mit dem Status `requested` an den Server übergeben. \n  Der Server ändert im Anschluss den Status auf `active` oder im Fehlerfall auf `error`.  \n  **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)",
                "mustSupport": true
            },
            {
                "id": "Subscription.reason",
                "path": "Subscription.reason",
                "short": "",
                "comment": "**Bedeutung:** Beschreibung wieso diese Subscription erstellt wurde.  \n  **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)",
                "mustSupport": true
            },
            {
                "id": "Subscription.criteria",
                "path": "Subscription.criteria",
                "short": "",
                "comment": "",
                "patternString": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge"
            },
            {
                "id": "Subscription.channel",
                "path": "Subscription.channel",
                "short": "",
                "comment": "",
                "mustSupport": true
            },
            {
                "id": "Subscription.channel.type",
                "path": "Subscription.channel.type",
                "short": "",
                "comment": "",
                "mustSupport": true,
                "binding": {
                    "strength": "required",
                    "valueSet": "https://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType"
                }
            },
            {
                "id": "Subscription.channel.endpoint",
                "path": "Subscription.channel.endpoint",
                "short": "",
                "comment": "**Bedeutung:** Adresse des Kommunikationskanals/ Endpunkts, an den Subscription-Benachrichtigungen gesendet werden sollen. Dies ist nur für rest-hook Subscriptions relevant.  \n    **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)",
                "mustSupport": true
            },
            {
                "id": "Subscription.channel.payload",
                "path": "Subscription.channel.payload",
                "short": "",
                "comment": "**Bedeutung:** Format in dem Subscription Notifications versendet werden sollen (JSON oder XML)\n    **Hinweise:** Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)",
                "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",
                "comment": "**Bedeutung:** http-Header welcher dazu genutzt werden kann einen Authorization-header zu setzen. Dies ist nur für rest-hook Subscriptions relevant.  \n    **Hinweise:** ACHTUNG: dieses Datenfeld muss bei READ-Interaktionen maskiert werden! Siehe [R4 Subscriptions](https://hl7.org/fhir/R4/subscription.html)",
                "mustSupport": true
            }
        ]
    }
}

Constraints/Invarianten

Terminology-Bindings

ElementStaerkeValueSet
Subscription.channel.typerequiredhttps://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType
Subscription.channel.payloadrequiredhttps://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS

Anmerkungen zu Must-Support-Feldern

FeldnameKurzbeschreibungHinweise
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

Subscription.reason

Bedeutung: Beschreibung wieso diese Subscription erstellt wurde.
Hinweise: Siehe R4 Subscriptions

Subscription.channel
Subscription.channel.type
Subscription.channel.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

Subscription.channel.payload

Bedeutung: Format in dem Subscription Notifications versendet werden sollen (JSON oder XML) Hinweise: Siehe R4 Subscriptions

Subscription.channel.headerFalls eine REST-Enpunkt einen Authorization-Header benötigt, kann dieser hier gesetzt werden

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

Interaktionen

InteraktionVerbindlichkeit
readMAY
createMAY
updateMAY
deleteMAY

(Reverse-)Include

Subscription:

Subscription
<Subscription xmlns="http://hl7.org/fhir">
    <id value="PatientMergeSubscriptionExample" />
    <meta>
        <profile value="https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription" />
    </meta>
    <status value="requested" />
    <reason value="Patient merge subscription" />
    <criteria value="https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" />
    <channel>
        <type value="rest-hook" />
        <endpoint value="http://localhost:8081/fhir/Bundle" />
        <payload value="application/fhir+json">
            <extension url="http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content">
                <valueCode value="full-resource" />
            </extension>
        </payload>
        <header value="Authorization: Bearer xxxxxxxxxx" />
    </channel>
</Subscription>
{
    "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"
}

SubscriptionNotification-Bundle

Bundle
<Bundle xmlns="http://hl7.org/fhir">
    <id value="SubscriptionNotificationBundleExample" />
    <type value="history" />
    <entry>
        <fullUrl value="urn:uuid:9bb6fcbd-8391-4e35-bd4c-620a2db47af0" />
        <resource>
            <Parameters>
                <id value="SubscriptionNotification" />
                <meta>
                    <profile value="http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4" />
                </meta>
                <parameter>
                    <name value="subscription" />
                    <valueReference>
                        <reference value="Subscription/1" />
                    </valueReference>
                </parameter>
                <parameter>
                    <name value="topic" />
                    <valueCanonical value="https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge" />
                </parameter>
                <parameter>
                    <name value="status" />
                    <valueCode value="active" />
                </parameter>
                <parameter>
                    <name value="type" />
                    <valueCode value="event-notification" />
                </parameter>
                <parameter>
                    <name value="events-since-subscription-start" />
                    <valueString value="1" />
                </parameter>
                <parameter>
                    <name value="notification-event" />
                    <part>
                        <name value="event-number" />
                        <valueString value="1" />
                    </part>
                    <part>
                        <name value="timestamp" />
                        <valueInstant value="2024-02-22T18:30:05+01:00" />
                    </part>
                    <part>
                        <name value="focus" />
                        <valueReference>
                            <reference value="Patient/DorisQuelle" />
                        </valueReference>
                    </part>
                </parameter>
            </Parameters>
        </resource>
        <request>
            <method value="GET" />
            <url value="https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge/$status" />
        </request>
        <response>
            <status value="200" />
        </response>
    </entry>
    <entry>
        <fullUrl value="http://example.org/fhir/Patient/DorisQuelle" />
        <resource>
            <Patient>
                <id value="DorisQuelle" />
                <meta>
                    <profile value="https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient" />
                </meta>
                <identifier>
                    <type>
                        <coding>
                            <system value="http://terminology.hl7.org/CodeSystem/v2-0203" />
                            <code value="MR" />
                        </coding>
                    </type>
                    <system value="https://fhir.krankenhaus.example/sid/PID" />
                    <value value="654321" />
                </identifier>
                <identifier>
                    <type>
                        <coding>
                            <system value="http://fhir.de/CodeSystem/identifier-type-de-basis" />
                            <code value="KVZ10" />
                        </coding>
                    </type>
                    <system value="http://fhir.de/sid/gkv/kvid-10" />
                    <value value="A123456789" />
                </identifier>
                <active value="false" />
                <name>
                    <use value="official" />
                    <family value="Duplikat" />
                    <given value="Doris" />
                </name>
                <gender value="female" />
                <birthDate value="1964-08-12" />
            </Patient>
        </resource>
        <request>
            <method value="PUT" />
            <url value="Patient" />
        </request>
        <response>
            <status value="201" />
        </response>
    </entry>
</Bundle>
{
    "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",
                                "valueInstant": "2024-02-22T18:30:05+01:00"
                            },
                            {
                                "name": "focus",
                                "valueReference": {
                                    "reference": "Patient/DorisQuelle"
                                }
                            }
                        ]
                    }
                ]
            },
            "request": {
                "method": "GET",
                "url": "https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge/$status"
            },
            "response": {
                "status": "200"
            }
        },
        {
            "fullUrl": "http://example.org/fhir/Patient/DorisQuelle",
            "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": "KVZ10",
                                    "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"
            },
            "response": {
                "status": "201"
            }
        }
    ]
}

Patientenobjekte

Zum Beispiel für den Merge auf Ebene der Patient-Instanzen siehe Übergreifende Festlegungen Patient-merge.