Subscription patient-merge (R5 Backport Subscription)
Patient Merge 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
Inhalt
PatientMergeSubscription (Subscription) | I | ||
id | Σ | 0..1 | string |
meta | Σ | 0..1 | Meta |
implicitRules | Σ ?! | 0..1 | uri |
language | 0..1 | codeBinding | |
text | 0..1 | Narrative | |
contained | 0..* | Resource | |
extension | I | 0..* | Extension |
modifierExtension | ?! I | 0..* | Extension |
status | S Σ ?! | 1..1 | codeBinding |
contact | Σ I | 0..* | ContactPoint |
end | Σ | 0..1 | instant |
reason | S Σ | 1..1 | string |
criteria | S Σ | 1..1 | stringPattern |
id | 0..1 | string | |
extension | I | 0..* | Extension |
filterCriteria | S Σ I | 0..* | Extension(string) |
value | 0..1 | System.String | |
error | Σ | 0..1 | string |
channel | S Σ | 1..1 | BackboneElement |
id | 0..1 | string | |
extension | I | 0..* | Extension |
heartbeatPeriod | I | 0..1 | Extension(unsignedInt) |
timeout | I | 0..1 | Extension(unsignedInt) |
maxCount | I | 0..1 | Extension(positiveInt) |
modifierExtension | Σ ?! I | 0..* | Extension |
type | S Σ | 1..1 | codeBinding |
id | 0..1 | string | |
extension | I | 0..* | Extension |
customChannelType | S Σ I | 0..1 | Extension(Coding) |
value | 0..1 | System.String | |
endpoint | S Σ | 0..1 | url |
payload | S Σ | 1..1 | codeBinding |
id | 0..1 | string | |
extension | I | 1..* | Extension |
content | S Σ I | 1..1 | Extension(code) |
value | 0..1 | System.String | |
header | S Σ | 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 ü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 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 ü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 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ü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ö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ü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
Element | Staerke | ValueSet |
---|---|---|
Subscription.channel.type | required | https://gematik.de/fhir/isik/ValueSet/RestAndWSSubscriptionChannelType |
Subscription.channel.payload | required | https://gematik.de/fhir/isik/ValueSet/FhirMimeTypeVS |
Anmerkungen zu Must-Support-Feldern
Feldname | Kurzbeschreibung | Hinweise |
---|---|---|
Subscription.status | Bedeutung: Der Status der Subscription, der den Serverstatus der Subscription angibt.
Neue Subscriptions werden immer mit dem Status | |
Subscription.reason | Bedeutung: Beschreibung wieso diese Subscription erstellt wurde. | |
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. | |
Subscription.channel.payload | Bedeutung: Format in dem Subscription Notifications versendet werden sollen (JSON oder XML) Hinweise: Siehe R4 Subscriptions | |
Subscription.channel.header | Falls 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. |
Interaktionen
Interaktion | Verbindlichkeit |
---|---|
read | MAY |
create | MAY |
update | MAY |
delete | MAY |
(Reverse-)Include
Name | Spezifikation | Verbindlichkeit |
---|---|---|
$get-ws-binding-token | http://hl7.org/fhir/uv/subscriptions-backport/OperationDefinition/backport-subscription-get-ws-binding-token | MAY |
Subscription:
Subscription |
id : PatientMergeSubscriptionExample |
meta |
profile : https://gematik.de/fhir/isik/StructureDefinition/patient-merge-subscription |
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 |
url : http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-payload-content |
value : full-resource |
header : Authorization: Bearer xxxxxxxxxx |
<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 |
id : SubscriptionNotificationBundleExample |
type : history |
entry |
fullUrl : urn:uuid:9bb6fcbd-8391-4e35-bd4c-620a2db47af0 |
resource |
id : SubscriptionNotification |
meta |
profile : http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-status-r4 |
parameter |
name : subscription |
value |
reference : Subscription/1 |
parameter |
name : topic |
value : https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge |
parameter |
name : status |
value : active |
parameter |
name : type |
value : event-notification |
parameter |
name : events-since-subscription-start |
value : 1 |
parameter |
name : notification-event |
part |
name : event-number |
value : 1 |
part |
name : timestamp |
value : 2024-02-22T18:30:05+01:00 |
part |
name : focus |
value |
reference : Patient/DorisQuelle |
request |
method : GET |
url : https://gematik.de/fhir/isik/SubscriptionTopic/patient-merge/$status |
response |
status : 200 |
entry |
fullUrl : http://example.org/fhir/Patient/DorisQuelle |
resource |
id : DorisQuelle |
meta |
profile : https://gematik.de/fhir/isik/StructureDefinition/ISiKPatient |
identifier |
type |
coding |
system : http://terminology.hl7.org/CodeSystem/v2-0203 |
code : MR |
system : https://fhir.krankenhaus.example/sid/PID |
value : 654321 |
identifier |
type |
coding |
system : http://fhir.de/CodeSystem/identifier-type-de-basis |
code : KVZ10 |
system : http://fhir.de/sid/gkv/kvid-10 |
value : A123456789 |
active : False |
name |
use : official |
family : Duplikat |
given : Doris |
gender : female |
birthDate : 1964-08-12 |
request |
method : PUT |
url : Patient |
response |
status : 201 |
<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.