# Package at.chipkarte.client.abs.soap

Interface und Klassen des Arzneimittelbewilligungsservice (ABS).

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  IAbsService | Dieses Service stellt die Funktionalitäten für das Arzneimittelbewilligungsservice (ABS) zur Verfügung.

- Class Summary
  Class | Description
  --- | ---
  AnfrageAntwort | Enthält die Daten, die von der Funktion `sendenAnfrage` zurückgeliefert werden.
  AnfrageEntscheid | Enthält die Rückantwortdaten zu einer Verordnung im Rahmen einer `BewilligungsAnfrage`.
  BewilligungsAnfrage | Enthält die Daten einer Bewilligungsanfrage im Sinne des Arzneimittelbewilligungsservice.
  FilterKriterien | Enthält die Daten zur Einschränkung der Datensätze im Zuge der Funktion `getStatusBewilligungsAnfragen`.
  FolgeverordnungsAusstellungsErgebnis | Enthält die Bestätigung einer ausgestellten `Folgeverordnung`.
  FolgeverordnungsAusstellungsParameter | Enthält die Parameter zum `Ausstellen einer Folgeverordnung`.
  LangzeitbewilligungsAbfrageErgebnis | Enthält das Ergebnis einer `LangzeitbewilligungsAbfrage`.
  LangzeitVerordnung | Enthält die Rückantwortdaten zu einer beantragten Langzeitverordnung innerhalb einer `BewilligungsAnfrage`.
  Medikament | Enthält die Daten eines Medikaments im Rahmen einer `Verordnung`.
  PatientenDaten | Enthält die Daten des Patienten, für den eine `BewilligungsAnfrage` gestellt wird.
  Rueckantwort | Enthält die Daten einer Rückantwort des chefärztlichen Dienstes zu einer `BewilligungsAnfrage`.
  StatusBewilligungsAnfrage | Enthält die Daten zum Status einer Bewilligungsanfrage.
  Verordnung | Enthält die Daten zu einer Verordnung im Rahmen einer `BewilligungsAnfrage`.

## Package at.chipkarte.client.abs.soap Description

Interface und Klassen des Arzneimittelbewilligungsservice (ABS). Enthält den SOAP-Endpoint `IAbsService` sowie die dazu notwendigen Klassen.
Inhalt der ABS package-Beschreibung:

- Allgemein

- Rechte
- Dynamische Ermittlung von Parameterwerten des e-card-Regelwerks
- Online-/Offline-Status
- SV-Nummer vs. e-card CardToken vs. EKVK-Daten
- Fotoinformation

- Funktionalität von ABS

- Bewilligungsanfrage senden
- Patientendaten ermitteln
- Zustand der Bewilligungsanfragen abfragen
- Zustand beantworteter Bewilligungsanfragen eines Patienten abfragen
- Rückantwort abrufen
- Langzeitbewilligung (Bewilligungsvorrat) abfragen
- Folgeverordnung zur Langzeitbewilligung ausstellen / Arztbriefbewilligung konsumieren

# Allgemein

Vertragspartner haben die Möglichkeit Bewilligungsanfragen an den jeweils zuständigen chefärztlichen Dienst zu stellen.

## Rechte

Je nach Funktion in ABS benötigt der Vertragspartner für die Durchführung das Recht:

- ABS.CORE
- ABS.REZEPTUR
- ABS.ARZTBRIEF

Wird eine Funktion, welche eines dieser Rechte benötigt, ohne das entsprechende Recht aufgerufen, erhält man die entsprechende Exception:
AccessException.MISSING_ABS_CORE, AccessException.MISSING_ABS_REZEPTUR, AccessException.MISSING_ABS_ARZTBRIEF.
Mittels der Funktion getBerechtigungen() aus dem BASE-Service ist es möglich, die Rechte des Vertragspartners abzufragen.
Welches Recht für welche Funktion im Speziellen benötigt wird, ist den Funktionsbeschreibungen der Javadoc zu entnehmen (jeweils in den Vorbedingungen).

## Dynamische Ermittlung von Parameterwerten des e-card-Regelwerks

Für das Service relevante Parameterwerte des e-card Regelwerks müssen dynamisch mindestens einmal pro Dialog mit den an der Vertragspartnersoftware-Schnittstelle angebotenen Methoden ermittelt werden:

ABS relevante Krankenversicherungsträger ermitteln | - | ABS-Methode: getSVTs()

Permanente Abfragen dieser Parameterwerte vor jedem Server-Request sind nicht verboten, aber technisch nicht notwendig.

## Online-/Offline-Status

Im laufenden Betrieb kann ein Offline-Zustand bzw. das Auftreten eines Verbindungsproblems in Abängigkeit der Kommunikationsart mit dem e-card System wie folgt identifiziert werden:

- die Kommunikation erfolgt direkt über die GINA:
  Die aufrufende Funktion retourniert eine entsprechende SOAP Exception (ServiceException.CONNECTION_ERROR).
- die Kommunikation erfolgt über den Proxy auf der GINA:
  Es wird als Response HTTP 503 retourniert.
- die Kommunikation erfolgt direkt mit dem Serversystem:
  Es erfolgt keine Response.

Ob eine Verbindung für ein bestimmtes Service zum e-card-Serversystem besteht, sollte im Normalbetrieb NICHT abgefragt werden! Die Abfrage sollte nur dann durchgeführt werden um festzustellen, ab wann das Service wieder online ist, wenn zuvor Verbindungsprobleme aufgetreten sind.
Die empfohlene Frequenz für die Abfragen liegt in diesem Fall bei > 1 Minute.
Die Abfrage ist über eine REST Schnittstelle durchzuführen: Der Aufruf erfolgt mittels:
GET https://<gina-adresse>/<service-name>/<versionsnummer>/status
Ist der Server erreichbar, wird der Response HTTP 200 retourniert. Ist der Server nicht erreichbar (Offline) und der Request wird über die GINA geschickt (direkt über die GINA bzw. über den GINA Proxy), wird der Response HTTP 503 retourniert.
Hinweis: Erfolgt die Kommunikation mittels GINA Proxy wird im HTTP 503 Response zusätzlich der Text "Die GINA konnte keine Verbindung zum Serversystem herstellen." im Response-Body befüllt.
Erfolgt die Abfrage direkt auf das Serversystem (nach Entfall der GINA) wird im Offline-Fall keine Response mehr retourniert.

## SV-Nummer vs. e-card CardToken vs. EKVK-Daten

Bei den ABS Funktionen unterscheidet man folgende Unterschiedliche Eingabevarianten zur Identifikation des Patienten:

- SV-Nummer und/oder e-card Cardtoken oder EKVK-Daten
- SV-Nummer und/oder e-card Cardtoken
- SV-Nummer und/oder e-card Cardtoken oder SV-Nummer und/oder Vor- und/oder Nachname

Das e-card Cardtoken (SV-Signaturtoken mit e-card) kann mittels REST Schnittstelle vom LANCCR angefordert werden.
Die Dokumentation des REST-Services zur Kommunikation mit dem Kartenleser ist zu finden unter: Swagger Doku LANCCR.
Bei der Anmeldung des Patienten kann in Abhängigkeit davon ob eine e-card vorhanden ist ein e-card Cardtoken (SV-Signaturtoken mit e-card) oder ein o-card Cardtoken (SV-Signaturtoken mit Admin-Karte) ausgestellt werden.
Das ausgestellte Cardtoken kann anschließend in den Funktionen der jeweiligen Services anstelle einer (gesteckten) e-card verwendet werden.
Das Stecken der e-card zum Ausführen der jeweiligen Servicefunktion ist nicht mehr notwendig.
Das Cardtoken kann je nach Service für eine bestimmte Dauer nach Ausstellung genutzt werden. In der Regel ist ein ausgestellter CardToken für 10 Stunden verwendbar.
Welcher Cardtoken vom jeweiligen Service unterstützt wird, ist bei den Services selbst definiert.
In ABS wird nur das e-card Cardtoken unterstützt!
Für die Angabe innerhalb der Funktionen gilt:
SV-Nummer und/oder e-card Cardtoken oder EKVK-Daten
Darunter fallen folgende ABS Funktionen:

- ermittelnPatientenDaten()
- sendenAnfrage()

Ein SV-Patient kann mittels SV-Nummer oder mittels e-card Cardtoken angegeben werden. Werden beide Parameter angegeben, muss die SV-Nummer zum Patienten gehören dessen e-card zur Ausstellung des e-card Cardtokens verwendet wurde. Ein EKVK-Patient muss mittels den EKVK-Daten (EKVK-Nummer, Vorname, Nachname, Geschlecht und Geburtsdatum) angegeben werden. Eine Angabe der EKVK-Nummer gemeinsam mit der SV-Nummer oder einen e-card Cardtoken ist nicht zulässig.
SV-Nummer und/oder e-card Cardtoken
Darunter fallen folgende ABS Funktionen:

- abfragenLangzeitbewilligung()
- sendenFolgeverordnung()

Diese Funktionen sind nur für SV-Patienten verwendbar. Ein SV-Patient kann mittels SV-Nummer oder mittels e-card Cardtoken angegeben werden. Werden beide Parameter angegeben, muss die SV-Nummer zum Patienten gehören dessen e-card zur Ausstellung des e-card Cardtokens verwendet wurde.
SV-Nummer und/oder e-card Cardtoken oder SV-Nummer und/oder Vor- und/oder Nachname
Darunter fallen folgende ABS Funktionen:

- getStatusPatientBewilligungsAnfragen()

Bei dieser Funktion handelt es sich bei der Angabe des Patientenidentifikators um einen Suchparameter. Es muss entweder ein e-card Cardtoken oder mindestens eines der Felder SV-Nummer, Vorname oder Nachname angegeben werden. Der e-card Token kann gemeinsam mit der SV-Nummer angegeben werden. In diesem Fall muss die SV-Nummer zum Patienten gehören dessen e-card zur Ausstellung des e-card Cardtokens verwendet wurde. Eine gleichzeitige Angabe des e-card Cardtoken mit Vorname oder Nachname ist nicht zulässig. Die SV-Nummer alleine darf mit Vorname und/oder Nachname angegeben werden.

## Fotoinformation

Im Zuge folgender Funktionen ist die Übermittlung einer Fotoinformation möglich:

- Bewilligungsanfrage senden - sendenAnfrage()
- Folgeverordnung zur Langzeitbewilligung ausstellen / Arztbriefbewilligung konsumieren - sendenFolgeverordnung()

Wird in einer dieser Funktionen vom e-card Server eine Fotoinformation retourniert, so ist der im Parameter enthaltene String dem Vertragspartner anzuzeigen!

# Funktionalität von ABS

Die Funktionen des Arzneimittelbewilligungsservice sind nur im Onlinefall verfügbar. Voraussetzung für die Verwendung dieser Funktionen ist ein aktiver Onlinedialog.
Die Integration von ABS in die Vertragspartnersoftware ist optional. Wird ABS integriert, müssen alle ABS-Funktionalitäten erfüllt sein:

- KVT abfragen (siehe Dynamische Ermittlung von Parameterwerten des e-card-Regelwerks)
- Bewilligungsanfrage senden
- Langzeitbewilligungsanfrage senden
- Bewilligungsstatus abfragen
- Langzeitbewilligung (Bewilligungsvorrat) abfragen
- Folgeverordnung ausstellen

Hinweis Rezeptgebührenbefreiung:
Das Objekt Patientendaten (bzw. das Objekt FolgeverordnungsAusstellungsErgebnis bei Folgeverordnungen) retourniert im Parameter rezeptGebBefreit die Information ob beim KV-Träger der Anfrage für den Patienten eine Rezeptgebührenbefreiung vorliegt. Dieser Parameter ist in der Regel immer mit true oder false belegt. Wird der Parameter im Objekt nicht befüllt, bedeutet dies, dass im Zuge der Umstellung im e-card System die Ermittlung nicht durchgeführt werden konnte (nicht ermittelbar).

## Bewilligungsanfrage senden

Mit dieser Funktion wird eine neue Bewilligungsanfrage an das ABS übermittelt. Diese wird an den chef- und kontrollärztlichen Dienst der Sozialversicherung zur Bearbeitung weitergeleitet. Ist das Medikament der Bewilligungsanfrage langzeitverordnungstauglich, kann eine Langzeitbewilligungsanfrage gesendet werden.
Der Bewilligungsanfrage kann ein Anhang (gezipptes Archiv) mit bis zu 10 Dateien beigefügt werden.

- Die maximale Größe für das Attachment ist 3 MB.
- Unterverzeichnisse innerhalb der ZIP-Datei sind nicht erlaubt.
- Die einzelnen Dateinamen müssen zwischen 5 und 128 Zeichen (inkl. Dateinamenerweiterung) haben.
- Erlaubte Dateinamenerweiterungen im Archiv: gif, jpg, jpeg, pdf, png, tiff, tif, xml.

Informationen zu dem ZIP-Archiv siehe auch Funktion sendenAnfrage().
Generelle Informationen hinsichtlich der Übermittelung des Anhangs (SOAP-Attachment mittels MTOM) siehe Abschnitt "Attachments" in Overview .
Man unterscheidet zwei Bewilligungsanfragetypen:
Bewilligungsanfrage mit unmittelbarer Ausstellung eines Rezeptes
Der Vertragspartner stellt eine Bewilligungsanfrage. Wird diese vom chefärztlichen Dienst bewilligt, erfolgt durch denselben Vertragspartner die Ausstellung und Übergabe des Rezeptes an den Patienten.
Um eine Bewilligungsanfrage mit anschließender Ausfolgung des Rezeptes zu stellen, benötigt der Vertragspartner das Recht ABS.REZEPTUR (siehe auch Rechte).
Als Antragstyp muss der Wert für "Rezept" übergeben werden.
Bewilligungsanfrage im Rahmen eines Arztbriefes - ohne unmittelbare Ausstellung eines Rezeptes
Der Vertragspartner im Krankenanstaltenbereich stellt bei der Entlassung des Patienten einen Arztbrief aus. Falls dieses Dokument bewilligungspflichtige Medikamente beinhalten, kann vor der Ausfertigung eine Bewilligungsanfrage mittels ABS gestellt werden. Es wird hierbei eine Arztbriefbewilligung erfasst. Diese wird im Langzeitbewilligungssystem (im Bewilligungsvorrat des jeweiligen Patienten) abgelegt.
Die Ausstellung eines Rezeptes zu einer Arztbriefbewilligungsanfrage erfolgt nicht durch den Vertragspartner im Krankenanstaltenbereich, sondern beim Vertragspartner im niedergelassenen Bereich. Dieser hat die Möglichkeit mittels Langzeitbewilligungsabfrage den Bewilligungsvorrat des Patienten abzufragen und für die bewilligten Arztbriefmedikamente ein Rezept auszustellen. Mit der Ausstellung des Rezeptes gilt die Arztbriefbewilligung als verbucht und steht somit keinem anderen Vertragspartner mehr zur Verfügung.
Um eine Arztbriefbewilligungsanfrage zu stellen, benötigt der Vertragspartner das Recht ABS.ARZTBRIEF (siehe auch Rechte).
Als Antragstyp muss der Wert für "Arztbrief" übergeben werden und in der Verordnerinformation muss der Name des Verordners vermerkt werden.
Fotoinformation im Rückgabeobjekt
Wird in der Rückgabe der Parameter Fotoinformation versorgt, so ist der darin enthaltene String dem Vertragspartner anzuzeigen.

##### Szenario 5 - Bewilligungsanfrage senden:

Das Szenario beschreibt beispielhaft die Durchführung einer Bewilligungsanfrage im Rahmen des ABS.
Annahme: Der Vertragspartner wählt das Medikament aus einer bekannten Liste, der Medikamentenname ist daher bekannt.

## Patientendaten ermitteln

Optional kann VOR dem Senden einer Bewilligungsanfrage eine Prüfung bzw. Ermittlung des Patienten mittels der Funktion ermittelnPatientenDaten() vorgenommen werden.
Anhand der eingegebenen Personendaten, dem KV-Träger (optional, Nichtangabe bedeutet automatisch ermitteln) und dem Antragstyp werden die Personendaten sowie der zulässige KV-Träger geprüft bzw. ermittelt.
Bei positiver Durchführung wird eine bewilligungsAnfrage mit bereits ausgefüllten patientenDaten retourniert.
Diese kann als Basis für das Senden einer Bewilligungsanfrage dienen, indem die fachlichen Bewilligungsdaten (verordnungen, usw.) in das retourniert bewilligungsAnfrage Objekt inkludiert werden. Somit ist beim Senden der Anfrage sichergestellt, dass z.B. keine weiteren Fehlermeldungen bzgl. des KV-Trägers mehr kommen.
Weiters eribt sich durch die Abfrage der Patientendaten VOR dem Absenden der Anfrage der Vorteil bereits vorab die Information bzgl. einer eventuellen Rezeptgebührenbefreiung zu erhalten.

## Zustand der Bewilligungsanfragen abfragen

Diese Funktion ermöglicht die Abfrage der Zustände der gestellten Bewilligungsanfragen über entsprechende Zeitstempel, sowie wählbarer Filterkriterien.
Hinweis: ABS erfordert das Messaging-System (siehe hierzu auch den Punkt "Benachrichtigungsmechanismus" in den BASE-Service-Informationen) zur Erkennung des Status einer Bewilligungsanfrage.

## Zustand beantworteter Bewilligungsanfragen eines Patienten abfragen

Diese Funktion ermöglicht die Abfrage der Zustände bereits beantworteter Bewilligungsanfragen für einen bestimmten Patienten. Der Patient zu dem die Bewilligungsanfragen abgefragt werden sollen, ist entweder mittels gesteckter e-card, oder mindestens eines der Patientendatenfelder in den Eingangsdaten anzugeben. Es ist zu beachten, dass bei Angabe mindestens eines Patientenparameters in den Eingangsdaten eine eventuell gesteckte e-card ignoriert wird.
Es ist im Gegensatz zur Abfrage des Zustands aller Bewilligungsabfragen (siehe Zustand der Bewilligungsanfragen abfragen) nicht möglich einen Abfragezeitraum anzugeben. Die Ermittlung findet über einen im eCS definierten Zeitraum statt.
Hinweis: ABS erfordert das Messaging-System (siehe hierzu auch den Punkt "Benachrichtigungsmechanismus" in den BASE-Service-Informationen) zur Erkennung des Status einer Bewilligungsanfrage.

## Rückantwort abrufen

Mit dieser Funktion kann eine Rückantwort zu einer Bewilligungsanfrage vom ABS abgerufen werden. Dies ist nur möglich, solange die Bewilligungsanfrage in der Statusliste aufscheint.
Hinweis: Abgeholte Bewilligungsrückantworten werden regelmäßig am e-card-Server gelöscht. Bei der Entwicklung des ABS-Moduls kann somit nicht davon ausgegangen werden, dass bereits abgeholte Bewilligungsrückantworten am Server langfristig zum Download bereitstehen.
Vorgehensweise:

- Schritt 1: Abfrage ob neue ABS-Rückantworten vorliegen (für Informationen zur asynchronen Abfrage, mit jeweils entsprechendem Szenario, siehe "Benachrichtigungsmechanismus" in den BASE-Service-Informationen)
  Hinweis: ABS-Benachrichtigungen werden an den Vertragspartner geschickt. D.h. an die jeweils zuständige Vertragspartnernummer (unabhängig der Ordination und des Tätigkeitsbereichs)
- Schritt 2: Weiterverarbeitung der vorhandenen Rückantworten - Szenario "Rückantwort abrufen"

##### Szenario 5 - Rückantwort abrufen:

## Langzeitbewilligung (Bewilligungsvorrat) abfragen

Der Begriff "Langzeitbewilligung" umfasst hier sowohl Bewilligungen von langzeitverordnungstauglichen Medikamenten als auch Arztbriefbewilligungen. Bei der Ausstellung dieser Bewilligungen (durch das Senden einer Anfrage), werden diese im Bewilligungsvorrat des Patienten abgelegt.
Diese Funktion ermöglicht die Abfrage des Bewilligungsvorrates, falls ein solcher für den Patienten besteht.
Die retournierte Liste inkludiert die nötigen Daten um zu entscheiden:

- ob und wann eine Folgeverordnung zu einer Bewilligung von langzeitverordnungstauglichen Medikamenten ausgestellt werden kann,
- ob aufgrund einer Arztbriefbewilligung ein Rezept ausgestellt werden kann.

Der Bewilligungsvorrat kann nur abgefragt werden, wenn der Vertragspartner das Recht ABS.REZEPTUR besitzt (siehe auch Rechte).

## Folgeverordnung zur Langzeitbewilligung ausstellen / Arztbriefbewilligung konsumieren

Diese Funktion prüft:

- ob eine Folgeverordnung zu einer Bewilligung von langzeitverordnungstauglichen Medikamenten ausgestellt werden kann,

- Ist dies möglich, so wird die Ausstellung dieser Folgeverordnung verbucht.

- ob zu einer Arztbriefbewilligung ein Rezept ausgestellt werden kann.

- Ist dies möglich, so wird die Rezeptausstellung verbucht.
- Die Arztbriefbewilligung gilt danach als konsumiert und steht anderen Vertragspartnern nicht mehr zur Verfügung.

Die Ausstellung einer Folgeverordnung zur Langzeitbewilligung bzw. die Konsumierung einer Arztbriefbewilligung ist nur dann möglich, wenn der Vertragspartner das Recht ABS.REZEPTUR besitzt (siehe auch Rechte).
Fotoinformation im Rückgabeobjekt
Wird in der Rückgabe der Parameter Fotoinformation versorgt, so ist der darin enthaltene String dem Vertragspartner anzuzeigen.

##### Szenario 5 - Folgeverordnung zur Langezeitbewilligung ausstellen / Arztbriefbewilligung konsumieren:

Anmerkung 1: Kann die Ausstellung einer Folgeverordnung, aus welchen Gründen auch immer, nicht erfolgen, so steht dem Verordner immer die Möglichkeit offen, die Ausstellung im Zuge einer normalen Bewilligungsanfrage genehmigen zu lassen. Anmerkung 2: Dieses Szenario kann nur durchgeführt werden, wenn eine der folgenden Bedingungen zutrifft: Es wurde kein e-card Cardtoken angegeben: Dem System liegt aber eine gültige Konsultation des Vertragspartners zu diesem Patient vor. Diese darf nicht älter als 90 Tage sein. Es werden dabei alle Konsultationen betrachtet bei denen die Vertragspartnernummer (VPNR), mit der die Konsultation gebucht wurde, der VPNR des aktuellen Dialoges entspricht (unabhängig von Ordination und Tätigkeitsbereich). Es wurde ein e-card Cardtoken angegeben. Trifft keine der beiden Bedingungen zu, so antwortet das System mit der ABS-Exception AbsException.NO_PHYSICIAN_PATIENT_RELATIONSHIP. Anmerkung 3: Das Medikament wird durch seinen Medikamentennamen spezifiziert (Pharmanummer kann optional angegeben werden). Wird das Medikament durch seinen Medikamentennamen spezifiziert so wird nur dann eine Langzeitbewilligung gefunden, wenn der Medikamentenname folgender Bildungsvorschrift entspricht: Feldaufbau laut Datensatzbeschreibung DEKO: <Kurzname> + " " + <Mengenangabe> + " " + <Mengenart> Allerdings werden die Leerzeichen, sofern vorhanden, in den einzelnen Feldern (Kurzname, Mengenangabe und Mengenart) links und rechts entfernt. Beispiel: Medikamentenname = “VIAGRA FTBL 25MG 4 ST“ Der Kurzname laut DEKO im Beispiel ist "VIAGRA FTBL 25MG". Da im Kurznamen selbst zwischen FTBL und 25MG zwei Leerzeichen sind, werden diese nicht entfernt.