Implementation Guide
ePA Medication Service
Version 1.2.0-ballot.2 - draft

## 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äß [gemSpec_Aktensystem_ePAfueralle#A_27886] 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.2.0

In der Version 1.2.0 erfolgt die Einführung des elektronischen Medikationsplans. In diesem Zusammenhang wird beim Einstellen einer MedicationRequest-Instanz des Profiles EPAMedicationRequest ab Version 1.2.0 vom Medication Service automatisch eine MedicationStatement-Instanz (EPAMedicationStatement) erzeugt und mit dem eingegangen MedicationRequest verbunden. Da alte EPAMedicationRequest-Instanzen (vor 1.2.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.2.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 die Instanz des Profils EPAPatient 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 in-progress oder completed, die die aktuelle MedicationRequest-Instanz über MedicationDispense.authorizingPrescription referenzieren.
- Für jede gefundene MedicationDispense-Instanz:
  - Setzen der Referenz in MedicationStatement.derivedFrom auf diese MedicationDispense-Instanz (additiv; die Referenz auf die MedicationRequest-Instanz bleibt bestehen).
- Bestimmung der maßgeblichen Dispensierung: Wähle die MedicationDispense-Instanz mit dem jüngsten Wert in meta.lastUpdated.
- Übernahmen aus der maßgeblichen Dispensierung:
  - 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

3. Erzeugen einer Provenance-Instanz des Profils EPAActivityProvenance (als letzter Schritt nach vollständiger Abarbeitung der oben genannten Punkte):

- 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 MEDSVC

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.

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.