# 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) Version 13 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 angebotenen Methoden ermittelt werden:

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

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

## Online-/Offline-Status

Ob eine Verbindung für ein bestimmtes Service zum e-card System besteht, sollte im Normalbetrieb NICHT abgefragt werden! Die Abfrage sollte nur durchgeführt werden, um festzustellen, ab wann das Service wieder online ist, sofern 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:
GET https://services.ecard.sozialversicherung.at/<service-name>/<versionsnummer>/status (PROD-Instanz) bzw. GET https://services-a.ecard-test.sozialversicherung.at/<service-name>/<versionsnummer>/status (VPSWH-Instanz)
Ist der Server erreichbar, wird die Response HTTP 200 retourniert. Im Offline-Fall wird keine Response retourniert.

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

Je nach ABS Funktion unterscheidet man 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

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 CardToken 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 CardToken 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.
Der e-card CardToken (SV-Signaturtoken mit e-card) kann mittels REST-Schnittstelle vom GINO angefordert werden.
Die Dokumentation des REST-Services zur Kommunikation mit dem Kartenleser ist zu finden unter: Swagger Doku Kartenleser.
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.
Der CardToken kann je nach Service für eine bestimmte Dauer nach Ausstellung genutzt werden. In der Regel ist ein ausgestellter CardToken 10 Stunden lang gültig.
Welcher CardToken vom jeweiligen Service unterstützt wird, ist bei den Services selbst definiert.
In ABS wird nur der e-card CardToken unterstützt!

## Fotoinformation

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

- sendenAnfrage()
- sendenFolgeverordnung()

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

# Funktionalität von ABS

Die Integration von ABS in die Vertragspartnersoftware ist optional. Wird ABS integriert, müssen alle ABS-Funktionalitäten umgesetzt 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 die Ermittlung nicht durchgeführt werden konnte (nicht ermittelbar).

## Bewilligungsanfrage senden

Mit dieser Funktion wird eine neue Bewilligungsanfrage an 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 zum 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.
In diesem Fall 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 retournierte bewilligungsAnfrage Objekt inkludiert werden. Somit ist beim Senden der Anfrage sichergestellt, dass z.B. keine weiteren Fehlermeldungen bzgl. des KV-Trägers vorkommen.
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 im Gegensatz zur Abfrage des Zustandes aller Bewilligungsabfragen (siehe Zustand der Bewilligungsanfragen abfragen) nicht möglich einen Abfragezeitraum anzugeben. Die Ermittlung findet über einen im e-card System 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 von ABS zu einer Bewilligungsanfrage abgerufen werden. Dies ist nur möglich, solange die Bewilligungsanfrage in der Statusliste aufscheint.
Hinweis: Abgeholte Bewilligungsrückantworten werden regelmäßig im e-card System gelöscht. Bei der Entwicklung des ABS-Moduls kann somit nicht davon ausgegangen werden, dass bereits abgeholte Bewilligungsrückantworten im e-card System 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).
Eine Abfrage ohne Verwenden der e-card des Patienten ist nur möglich, wenn innerhalb der letzten 90 Tage eine Konsultation verbucht wurde.

## 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 Patienten 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. Es wurde eine gültige e-Berechtigung im e-card System gespeichert. Es wurde ein gültiger e-Wahlpartner Kontakt im e-card System gespeichert. 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.