Implementation Guide
ePA Medication Service
Version 1.3.3 - release

## Migrationsvorgaben

An dieser Stelle finden sich Vorgaben zur Datenmigration zwischen verschiedenen Versionen dieses Implemenation Guide, die durch den Medication Service durchgeführt werden müssen. Eine Migration besteht pro Version ggf. aus mehreren Migrationsschritten. Es kann Versionen dieses Guide geben, für die keine Migrationsschritte festgelegt wurden.

Der Medication Service MUSS gemäß [gemIG_ePA_Basic#IG-EPA50964Z2A] alle Migrationen in aufsteigender Versionsabfolge des Medication Service durchführen, angefangen bei der kleinsten Version, für die noch keine Migration durchgeführt wurde. Der Medication Service MUSS alle nicht durchgeführten Migrationen zum frühestmöglichen Zeitpunkt durchführen.

Das ist der Moment, in dem das erste mal nach Aktivsetzen einer neuen Version mit Migrationsvorgaben das Aktenkonto geöffnet wird.

### Migration von 1.1.x auf Version 1.3.0

In der Version 1.3.0 erfolgt die Einführung des elektronischen Medikationsplans. In diesem Zusammenhang wird beim Einstellen einer MedicationRequest-Instanz des Profils EPAMedicationRequest ab Version 1.3.0 vom Medication Service automatisch eine MedicationStatement-Instanz (EPAMedicationStatement) erzeugt und mit dem eingegangen MedicationRequest verbunden. Da alte EPAMedicationRequest-Instanzen (vor Version 1.3.0) noch nicht über dieses zusätzliche MedicationStatement verfügen, wird es der Konsistenz halber im Rahmen dieser Migration auch für Altdaten angelegt.

Der Medication Service MUSS bei der Migration auf die Version 1.3.0 die folgenden Schritte ausführen (oder gleichwertige Schritte, die zum selben Ergebnis führen):

1. Für jede bestehende MedicationRequest-Instanz des Profils EPAMedicationRequest mit Status active oder completed:

1. Erzeugen einer MedicationStatement-Instanz des Profils EPAMedicationStatement mit folgendem Inhalt:

- Setzen von MedicationStatement.extension[context] auf PRESCRIPTION
- Setzen der Referenz in MedicationStatement.medicationReference auf die Medication-Instanz, die in der zugehörigen MedicationRequest-Instanz angegeben ist
- Setzen von MedicationStatement.extension[RxPrescriptionProcessIdentifier] auf den Wert aus MedicationRequest.identifier[RxPrescriptionProcessIdentifier]
- Setzen der Referenz in MedicationStatement.subject auf - sofern vorhanden - die Instanz des Profils EPAPatient (anderenfalls aus dem intern verfügbaren Aktenkonto) unter Verwendung einer logischen Referenz mit dem Identifier der Krankenversichertennummer (KVNR) des jeweiligen Versicherten gemäß dem Identifier-Profil für die 10-stellige Krankenversichertennummer (IdentifierKvid10)
- Setzen der Referenz in MedicationStatement.derivedFrom auf die aktuelle MedicationRequest-Instanz
- Setzen von MedicationStatement.dateAsserted mit dem Wert aus MedicationRequest.authoredOn
- Setzen von MedicationStatement.dosage mit dem Wert aus MedicationRequest.dosageInstruction
- Setzen von MedicationStatement.status mit dem Wert intended
- Setzen von MedicationStatement.effectivePeriod.start mit dem Wert aus MedicationRequest.authoredOn

2. Berücksichtigung zugehöriger Dispensierungen:

- Ermitteln aller EPAMedicationDispense-Instanzen mit Status completed, die die aktuelle MedicationRequest-Instanz über MedicationDispense.authorizingPrescription referenzieren.
- Für erste gefundene MedicationDispense-Instanz:
  - Setzen der Referenz in MedicationStatement.derivedFrom auf diese MedicationDispense-Instanz (additiv; die Referenz auf die MedicationRequest-Instanz bleibt bestehen).
  - Falls MedicationDispense.dosageInstruction gesetzt ist, denselben Wert in MedicationStatement.dosage übernehmen (überschreibt ggf. zuvor gesetzte Werte).
  - Setzen der Referenz in MedicationStatement.medicationReference auf die Medication-Instanz, die in der maßgeblichen MedicationDispense-Instanz angegeben ist.
  - Setzen von MedicationStatement.effectivePeriod.start auf den Wert aus MedicationDispense.whenHandedOver.
  - Setzen von MedicationStatement.status mit dem Wert unknown
- Für jede weitere gefundene MedicationDispense-Instanz:
  - Erzeugen einer MedicationStatement-Instanz des Profils EPAMedicationStatement mit folgendem Inhalt:
  - Setzen der Referenz in MedicationStatement.derivedFrom auf diese MedicationDispense-Instanz und zusätzlich auf die relevante MedicationRequest-Instanz.
  - Falls MedicationDispense.dosageInstruction gesetzt ist, denselben Wert in MedicationStatement.dosage übernehmen.
  - Setzen der Referenz in MedicationStatement.medicationReference auf die Medication-Instanz, die in der aktuellen MedicationDispense-Instanz angegeben ist.
  - Setzen von MedicationStatement.effectivePeriod.start auf den Wert aus MedicationDispense.whenHandedOver.
  - Setzen von MedicationStatement.status mit dem Wert unknown

3. Erzeugen einer Provenance-Instanz des Profils EPAActivityProvenance für jede oben erzeugte MedicationStatement-Instanz:

- Setzen von Provenance.target auf die erzeugte MedicationStatement-Instanz
- Setzen von Provenance.activity mit dem Wert CREATE
- Setzen von Provenance.agent.who auf den Wert MEDICATIONSVC

Für alle im Rahmen der Migration erzeugten MedicationStatement- und Provenance-Ressourceninstanzen ist die meta.versionId auf 1 zu setzen und meta.lastUpdated auf den Zeitpunkt der Durchführung der Migration zu setzen. Die Provenance-Instanz hat dabei konkret über eine versionierte Referenz auf die neu erstellte MedicationStatement-Instanz zu verweisen. Der Medication Service MUSS einmalig bei seiner Ausführung in allen Practitioner-Instanzen, die von MedicationRequest-Instanzen mit MedicationRequest.intent ungleich plan referenziert werden, den Wert des Elements Practitioner.qualification entfernen.
Für die Korrektur der Berufsbezeichnungen in den betroffenen Practitioner-Instanzen ist ausschließlich der Wert des Elements Practitioner.qualification anzupassen, ohne eine neue Ressourcenversion zu erzeugen. Die bestehenden meta.versionId und meta.lastUpdated Werte der Practitioner-Instanzen dürfen im Rahmen dieser Migration nicht verändert werden.

Dies korrigiert eine in der Vergangenheit fehlerhafte Befüllung durch den E-Rezept-Fachdienst. Es werden nur diejenigen Practitioner-Instanzen korrigiert, die nicht über eine MedicationRequest-Instanz mit eMP-relevant referenziert sind.

Der Medication Service MUSS einmalig bei seiner Ausführung in allen Medication-Instanzen sicherstellen, dass bei Nichtbelegung von Medication.code.coding:atc-de.version der Wert "2025" nachgetragen wird.
Bei der Nachtragung des Werts "2025" ist ausschließlich das Element selbst zu ergänzen, ohne eine neue Ressourceninstanzversion anzulegen. Die bestehenden Werte von meta.versionId und meta.lastUpdated der betroffenen Medication-Instanzen dürfen im Rahmen dieser Migration nicht verändert werden.

Die o.g. Nachtragung der Version mit dem Wert "2025" ist bei der amtlichen ATC-Klassifikation möglich, da die Business-Version 2025 erstmalig in der ePA 3.0 verwendet wurde.