# C_12438_Anlage

Im Zuge von Change C_12517 erfolgt die Verschiebung der Anforderungen zu AuditEvents aus der Spezifikation in den IG Basisfunktionalitäten. Das betrifft auch die folgend dargestellten Änderungen bezüglich A_28413. Eine inhaltliche Änderung erfolgt dabei nicht, jedoch ergeben sich daraus geänderte Ids für die Anforderungen.

Inhaltsverzeichnis

#

- C_12438_Anlage
- 1 Änderungsbeschreibung
- 2 Anpassungen gemSpec_Aktensystem
- 3 Anpassungen gemSpec_ePA-FdV
- 4 Anpassung IG für Audit Event Service
- 5 Anpassung der openAPI

## 1 Änderungsbeschreibung

Es soll eine Möglichkeit gegeben werden, zwei Aktenzustände derselben Akte zusammenzuführen.

## 2 Anpassungen gemSpec_Aktensystem

Die Vorgänge HealthRecord Relocation und Health Record Merge nutzen beide das gleiche Exportpaket für den Datenaustausch. Zur Vermeidung doppelter Anforderungen und für eine eindeutige Zuordnung von Anforderungen zu den jeweiligen Vorgängen, wird innerhalb des Kapitel 3.2.Health Record Relocation die Anordnung der schon vorhandenen Anforderungenneu gruppiert und mit ergänzendem Text versehen. Durch die eingefügten Kapitel ändert sich auch die Kapitelnummerierung für das nachfolgende Kapitel 3.2.1 "Ablauf eines Aktenkontoumzugs" im resultierenden Dokument.

Durch die geänderte Anordnung der bisher vorhandenen Anforderungen ändert sich deren Inhalt und Prüfverfahren nicht.

3.2 Health Record Relocation Service

Dieser Service ermöglicht den Transfer der Daten eines Aktenkontos von einem bisherigen Anbieter zu einem neuen Anbieter.
Ein Vorgang zur Übertragung der Daten eines Aktenkontos ist erforderlich für:

- einen Aktenkontoumzug, wenn der Versicherte die Versicherung wechselt und die Information zum generellen Widerspruch gegen die Nutzung der ePA und alle Inhalte eines existierenden Aktenkontos zu einem neuen Anbieter übertragen werden müssen.
- eine Aktenkontozusammenführung, wenn für den Versicherten bei mehr als einem Anbieter ein Aktenkonto vorhanden ist und die Inhalte in einem einzigen Aktenkonto zusammengeführt werden sollen.

Beide Vorgänge sind ähnlich und nutzen jeweils gleiche Schnittstellen und ein Paket gleicher Struktur. Bezüglich der Vor- und Nachbedingungen sowie der Vorgangsdetails weichen diese jedoch von einander ab..

3.2.1 Schnittstellen und Transportpaket

Seitens der Aktensysteme werden für einen Aktenkontoumzug zwei Schnittstellen angeboten: I_Health_Record_Relocation_Service zur Nutzung durch die Anbieter (alt und neu) für den Zugriff auf das Aktenkonto des Versicherten und I_Information_Service_Accounts für die Interaktion der Aktensysteme (alt und neu) untereinander. Die notwendige Kommunikation der Kassen-Backends mit ihren Aktensystemen außerhalb der VAU erfolgt dabei in Absprache der Beteiligten und ist nicht Bestandteil der genannten Schnittstellen.

Um eine Durchmischung der Vorgänge auszuschließen, verwendet jeder Vorgang jeweils eigene Operationen der Schnittstellen. Die Erstellung und Kodierung des Transportpakets (Exportpaket, bzw. Mergepaket) ist für beide Vorgänge identisch.

einfügen der Anforderungen (und assozierter Hinweise und Begleittexte):

A_24786 - Health Record Relocation Service - Realisierung der Schnittstelle I_Health_Record_Relocation_Service
A_25005-04 - Health Record Relocation Service - Daten des Exportpakets
A_25605 - Health_Record_Relocation_Service - Erstellung des Exportpakets
A_25012 - Health Record Relocation Service - Signatur der Befugnisse
A_25719 - Health Record Relocation Service - JWT der Befugnis im Exportpaket
A_24787-01 - Health Record Relocation Service - Verschlüsselung des Exportpaktes
A_24942 - Health Record Relocation Service – Prüfung Provider ENC Zertifikat
A_21750 - Health Record Relocation Service – Integritätsschutz Exportpake
A_15051 - Health Record Relocation Service - Authentisierung gegenüber einem neuen Aktenanbiete
A_15048 - Health Record Relocation Service - Authentifizierung des neuen Aktenanbieters
A_17236 - Health Record Relocation Service - Prüfung der TLS-Zertifikate

3.2.2 Aktenkontoumzug (Health Record Relocation)

Transfer eines Aktenkontos zu einem neuen Anbieter (Aktenkontoumzug).

Wechselt der Versicherte den Kostenträger bzw. den Anbieter seines Aktenkontos, so erfolgt der Umzug der Inhalte seines bestehenden Aktenkontos vom bisherigen Anbieter zu einem neuen Anbieter weitestgehend automatisiert.

einfügen der Anforderungen (und assozierter Hinweise und Begleittexte):

A_24821 - Health Record Relocation Service - Suspendierung des Aktenkontos
A_24827 - Health Record Relocation Service - Reaktivierung des Aktenkonto
A_15703 - Health Record Relocation Service - Verfügbarkeit Export-Paket
A_21239 - Health Record Relocation Service – Verhalten bei Nichtabholen des Exportpakets
A_14905-04 - Health Record Relocation Service – Import des Exportpakets des vorhergehenden Aktenkontos
A_28045 - Health Record Relocation Service - Übernahme von Widersprüchen
A_27616 - Health Record Relocation Service - Abbruch des Imports eines Exportpakets
A_21548-02 - Health Record Relocation Service - Information der Vertreter über neuen FQDN nach Abschluss des Anbieterwechsel
A_26257 - Health Record Relocation Service - Löschen der im Exportpaket enthaltenen E-Mail-Adressen der Vertrete
A_24788 - Health Record Relocation Service - Löschen des Exportpakets nach Umzug des Aktenkontos
A_24982-02 - Health Record Relocation Service – Protokollierung des Anbieterwechsels eines Aktenkontos

3.2.3 Aktenkontozusammenführung (Health Record Merge)

Transfer der Daten eines Aktenkontos und Integration in ein existierendes Aktenkonto des gleichen Versicherten bei einem neuen Anbieter.

A_28412 - Health Record Relocation Service - Regeln für eine Zusammenführung

Der Health Record Relocation Service des neuen (importierenden) Aktensystems MUSS bei der Operation startPackageMergeImport für Objekte obj_export im zu importierenden Export-Paket die folgenden Regeln umsetzen:

Daten im Exportpaket | Regel für die Zusammenführung
--- | ---
XDS Document Service obj_export = Replace-Kette bestehend aus 1...n Dokumenten (n>= 1) obj_export[1] bezeichnet das aktuellste Dokument der Kette | Bemerkung; ein Dokument obj ist im Aktensystem vorhanden, falls es ein Dokument obj' im Aktensystem mit selber entryUUID, uniqueID oder selbem Hash-Wert gibt. wenn im importierenden AS kein Dokument von obj_export vorhanden ist, dann ergänze obj_export wenn im importierenden AS mindestens ein Dokument von obj_export vorhanden ist und das aktuellste Dokument obj_export[1] ist nicht vorhanden, dann ergänze obj_export[1] und verwerfe den Rest der Kette obj_export[2..n], sonst verwerfe obj_export
XDS Document Service obj_export = Unique-Dokument (z.B. NFD, DPE) | wenn im importierenden AS das Unique-Dokument obj_export nicht vorhanden ist, dann ergänze obj_export sonst verwerfe obj_export
XDS Document Service obj_export = dynamischer Folder | Bemerkung; ein Folder obj ist im Aktensystem vorhanden, falls es einen Folder obj' im Aktensystem mit dem selbem Foldertitel gibt. wenn im importierenden AS der Folder obj_export nicht vorhanden ist, dann 1. ergänze obj_export und 2. generiere für obj_export eine neue entryUUID bzw. neue uniqueId, falls die entryUUID bzw. uniqeId von obj_export bereits im importierenden AS existieren. wenn im importierenden AS der Folder obj_export vorhanden ist und SubmissionSet.submissionTime von obj_export älter als das SubmissionSet.submissionTime des vorhandenen Folders ist, dann übernimm SubmissionSet.submissionTime von obj_export für den vorhandenen Folder sonst verwerfe obj_export
XDS Document Service obj_export = Anhangs-Graph bestehend aus 1...n Dokumenten (n>= 1) | wenn im importierenden AS kein Dokument von obj_export vorhanden ist, dann ergänze obj_export wenn im importierenden AS mindestens ein Dokument von obj_export vorhanden ist, dann entferne alle APND-Assoziationen zwischen den Dokumenten aus obj_export und ergänze ein Dokument von obj_export im importierenden AS, falls das Dokument im importierenden AS nicht vorhanden ist.
Medication Service obj_export = FHIR-Datum | wenn obj_export im importierenden AS nicht vorhanden ist, dann ergänze obj_export, sonst verwerfe obj_export
Patient Service obj_export = FHIR-Datum | Es erfolgt keine Zusammenführung durch das Aktensystem.
Consent Decision Management obj_export = Widerspruch | wenn das importierende AS die Art des Widerspruchs unterstützt, und Änderungsdatum von obj_export aktueller als Änderungsdatum des korrespondierenden existierenden Objekts im AS ist, dann füge obj_export hinzu, sonst verwerfe obj_export Hinweis: obj_export wird verworfen, wenn das Änderungsdatum von obj_export im importierenden AS nicht ermittelt werden kann.
Entitlement Management obj_export = Eintrag auf der Blocked User Policy | wenn obj_export im importierenden AS nicht vorhanden ist, dann ergänze obj_export und lösche eine ggf. vorhandene Befugnis für die in obj_export identifzierte LEI, sonst verwerfe obj_export
Entitlement Management obj_export = Befugnis | wenn obj_export = Vertreter-Befugnis und obj_export im importierenden AS nicht vorhanden ist, dann ergänze obj_export, sonst verwerfe obj_export
Constraint Management obj_export = Eintrag in General Deny Policy | wenn obj_export im importierenden AS nicht vorhanden ist (nach Import aller Dokumente aus dem Export-Paket) und das in obj_export referenzierte Objekt im importierenden AS vorhanden ist, dann ergänze obj_export, sonst verwerfe obj_export
Audit Event Service obj_export = Protokolleintrag | wenn obj_export im importierenden AS nicht vorhanden ist, dann ergänze obj_export mit folgender Erweiterung in entyity.detail mit entity.detail.type="System-Zusammenführung" und entity.detail.value[x] = true, sonst verwerfe obj_export
E-Mail Management obj_export = E-Mail-Adresse | Es erfolgt keine Zusammenführung durch das Aktensystem.

[<=]

! Änderung nach Vorstellung im ePA Bi-Weekly !

(neue ID im IG Basisfunktionalitäten: IG-EPA89078Y44)

A_28413 - Health Record Relocation Service – Protokollierung der Zusammenführung bei Konfliktpotential

Der Health Record Relocation Service des neuen (importierenden) Aktensystems MUSS bei der Operation startPackageMergeImport jedes Hinzufügen eines Objekts zum Aktensystem entsprechend der Protokollierungsregeln für das Objekt protokollieren, wobei für agent.type und source.type "HRRSVC" (Health Record Relocation Service), für entity.name= "SystemMerge" und für entity.description="startPackageMergeImport" zu nutzen ist. <= [<=]

A_28414 - ePA-Aktensystem – Information des Versicherten über Zusammenführung durch Anbieter

Der Anbieter des ePA-Aktensystems MUSS den Versicherten über eine anstehende Zusammenführung seiner Akte informieren, sofern durch die Zusammenführung ein Zustand der Akte enstehen könnte, den der Versicherte überprüfen sollte. [<=]

Hinweis zu A_28414-*: In der Kommunikation mit den Versicherten kann der Anbieter eine eigene Sprachregelung wählen, es muss gegenüber dem Versicherten nicht von einer "Zusammenführung" gesprochen werden.

A_28415 - Health Record Relocation Service – Information des Versicherten über Zusammenführung per Mail

Falls der Versicherte eine E-Mail-Adresse im neuen (importierenden) Aktensystem hinterlegt hat oder eine E-Mail-Adresse des Versicherten im Export-Paket vorhanden ist, MUSS der Health Record Relocation Service bei der Operation startPackageMergeImport eine E-Mail an alle bekannten E-Mail-Adressen des Versicherten mit folgenden Hinweisen senden:

- Information über die Tatsache der Zusammenführung,
- ggf. Information, dass sich durch die Zusammenführung Daten oder Einstellungen in der Akte geändert haben und diese Änderungen in den Protokollen nachvollzogen werden können,
- ggf. könnten Protokolle durch die Zusammenführung inkonistent wirken.

[<=]

Anpassungen in Kapitel 3.22.1 Übersicht der Schnittstellen des Aktensystems:

I_Health_Record_Relocation_Service
Schnittstelle zur Steuerung des eines Aktenkontoumzugs oder einer Aktenkontozusammenführung aus der Umgebung des Kostenträgers
startPackageCreation | Diese Operation initiiert die Erstellung eines Export Pakets für den Umzug eines Aktenkontos zu einem neuen Anbieter.
startPackageImport | Diese Operation initiiert den Import eines Export Pakets in ein neu erstelltes Aktenkonto.
startPackageCreationForMerge | Diese Operation initiiert die Erstellung eines Merge Pakets für eine Aktenkontozusammenführung.
startPackageMergeImport | Diese Operation initiiert den Import eines Merge Pakets in ein existierendes Aktenkonto.

I_Information_Service_Accounts
Schnittstelle des Information Service gemäß [I_Information_Service_Accounts] für Anbieter Aktensystem im Kontext eines Aktenkontoumzugs oder einer Aktenkontozusammenführung.
getGeneralConsentDecision | Diese Operation dient der Abfrage eines Widerspruchs gegen die Nutzung der ePA bei einem anderen Aktensystemanbieter.
startRelocation | Diese Operation initiiert die Erstellung eines Export Pakets für die Relocation.
deleteExportPackage | Diese Operation schließt den Vorgang der Relocation erfolgreich ab.
postExportPackageIncident | Diese Operation erhält Benachrichtigungen zum Relocation-Prozess.
putDownloadUrlForExportPackage | Diese Operation initiiert den Import eines Export Packages.
postPackageDeliveryIncident | Diese Operation erhält Benachrichtigungen zum Relocation-Prozess.
startMerge | Diese Operation initiiert die Erstellung eines Merge Pakets für einen Merge-Prozess.
finalizeMerge | Diese Operation schließt eine Merge-Prozess erfolgreich ab.
postMergePackageIncident | Diese Operation erhält Benachrichtigungen zum Merge-Prozess.
putDownloadUrlForMergePackage | Diese Operation initiiert den Import eines Merge Packages.
postMergePackageDeliveryIncident | Diese Operation erhält Benachrichtigungen zum Merge-Prozess.
getProviderList | Diese Operation gibt eine Liste von FQDNs der Versicherungen / ePA-Anbieter aus

## 3 Anpassungen gemSpec_ePA-FdV

Neu in Kapitel 6.2.9 Protokollverwaltung

A_28416 - ePA-Frontend des Versicherten – Filtern nach Zusammenführung

Das ePA-Frontend des Versicherten MUSS es dem Nutzer ermöglichen, die Protokolldaten bei der Anzeige nach Protokolleinträgen einer Zusammenführung zu filtern. [<=]

## 4 Anpassung IG für Audit Event Service

Ergänzung ValueSet: EPA AuditEvent Service Type um den Code "SYSTEMMERGE":

Code | System | Display | Display (Deutsch)
SYSTEMMERGE | https://gematik.de/fhir/epa/CodeSystem/epa-auditevent-sourcetype-cs | Record Merge | Record Merge

Damit die Einträge im ePA-FdV dediziert angezeigt werden können, wird auch der Suchparameter source.type ergänzt.

## 5 Anpassung der openAPI

Ergänzung zu I_Health_Record_Relocation_Service:

Neue Operation für den Merge eines Exportpakets:

/relocationservice/v1/export/merge:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/x-requestid'
get:
tags:
- Content merge
operationId: startPackageCreationForMerge
summary: (startPackageCreationForMerge) Create an export package of health record for download
externalDocs:
description: 'Reference implemenation for Health Record Migration'
url: https://github.com/gematik/ref-ePA-HealthRecordMigration
description: |
This operation creates an export package including all data of
the health record for relocation to another health record provider.</br>
A created export package equals a _startPackageCreation_ outcome and considers the same data for
export but it is not part of the regular health record relocation process and can be used by the insurance
when necessary.</br>
This operation is limited to entitled users of role oid_kostentraeger.
**Client**:</br>
A client shall use this operation to create an export package for a merge import to an
existing health record hosted by another provider.
**Provider**:</br>
The export package shall be encrypted and stored for later download and contain all transferable
data of all health record services. The export package download url shall
be returned in the response.
The certificate (of the receiving health record system) for encryption is a preinstalled
certificate and shall be retrieved from HSM by rule 'hsm-r7'. This certifcate shall be
validated before use.
The format and encryption requirements are stated in an additional repository (see: 'find more details' below)
The operation shall not cause a state change and can only be called while in state INACCESSIBLE with sole reason 'ready for merge'.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 201 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor has no valid entitlement | 403 | notEntitled ||
| Requestor role is not _oid_kostentraeger__ | 403 | invalidOid ||
| Invalid certificate provided | 403 | invalCert | the certificate from HSM (hsm-r7) |
| Health record does not exist (UNKNOWN) or is in state INITIALIZED | 404 | noHealthRecord | |
| Health record is not in state INACCESSIBLE with sole reason 'ready for merge' | 409 | statusMismatch |
also if state is INACCESSIBLE with another or additional reason than 'prepared for a merge' |
| Any other error | 500 | internalError | (see 'Retry interval') |
</br>
| Postconditions | Remarks |
|---------------------------------------|---------|
| Export package is created| |#
responses:
'201':
description: Ok.
headers:
X-Request-ID:
$ref: '#/components/headers/requestid'
content:
application/json:
example:
downloadurl: 'http://example.com'
schema:
type: object
properties:
downloadurl:
$ref: '#/components/schemas/UrlType'
required:
- downloadurl

+++ Standardfehler (in der yaml enthalten)

-------------------

Neue Operation für den Abruf eines Exportpakets außerhalb einer Relocation:

/relocationservice/v1/import/merge:
parameters:
- $ref: '#/components/parameters/insurantid'
- $ref: '#/components/parameters/useragent'
- $ref: '#/components/parameters/x-requestid'
post:
tags:
- Content merge
operationId: startPackageMergeImport
summary: (startPackageMergeImport) Import an export package and merge content with existing data of a health record
description: |
Start the import of an encrypted export package for data migration from another health record provider.</br>
This operation is similar to _startPackageImport_ but is not limited to new and empty health records and allows
integration of the imported data into an existing health record with data.</br>
This operation is not part of the regular health record relocation process and can be used by the insurance
when necessary.
This operation is limited to entitled users of role oid_kostentraeger.
**Client**:</br>
A client shall use this operation with a url for export package download. A client receives this url
by proprietary means.
**Provider**:</br>
Download the complete export package from the download point. Decrypt the package (rule 'hsm-r5') and
integrate the content into the existing health record data.
The rules how to merge incoming and existing data are stated in requirement A_28412-*
and shall be applied.
The merge of data shall be possible in state ACTIVATED only.
Any occuring error shall abort the data merge process and remove all already merged data completely
(roll back).
Entitlements contained in the export package combine a jwt and additional data.</br>
If an entitlement as part of the export package shall be merged into the current data than
the jwt of the entitlement shall be converted to a CMAC secured entitlement using HSM rule 'rr5'.
The CMAC secured result shall then be completed with the additional data from the export package entitlement element:
- _oid_ of the entitled user
- _displayName_ of the entitled user
- _issued-at_ original point in time
- _issued-actorId_ of requestor
- _issued-displayName_ of requestor
The completed entitlement shall then be stored, encrypted by SecureAdminStorageKey of the health record.</br>
Audit events for the merge process events shall be created according to requirement A_28413-*.
The search index for MHD Service shall be rebuild to reflect the merged changes.
If previously unknown email addresses of representatives are added by the merge operation, a notification
mail shall be sent to each of these representatives, including the information about the changed FQDN.
| Conditions | Status code | Error code | Remarks |
|------------|-------------|------------|---------|
| Successful operation | 204 |||
| Request does not match schema | 400 | malformedRequest ||
| Requestor has no valid entitlement | 403 | notEntitled ||
| Requestor role is not _oid_kostentraeger_ | 403 | invalidOid ||
| Health record does not exist | 404 | noHealthRecord | _insurantid_ unknown |
| Health record is not in state ACTIVATED | 409 | statusMismatch ||
| Any other error | 500 | internalError | (see 'Retry interval') |
</br>
| Postconditions | Remarks |
|---------------------------------------|---------|
| Export package data is merged ||
| Log-entries exist | |
| Notification for representatives are sent | succesful operation and new representatives only|
requestBody:
required: true
content:
application/json:
example:
downloadurl: 'http://example.com'
schema:
type: object
properties:
downloadurl:
$ref: '#/components/schemas/UrlType'
required:
- downloadurl

+++ Standardfehler (in der yaml enthalten)