# Package at.chipkarte.client.sas.soap

Interface und Klassen des Sozialversicherungsnummernabfrageservice (SAS).

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  ISasService | Dieses Service stellt die Funktionalitäten des SV-Nummern-Abfrage-Service (SAS) zur Verfügung.

- Class Summary
  Class | Description
  --- | ---
  AbfrageErgebnis | Enthält bei positiver Durchführung der Funktionen `svNummerAbfragen` beziehungsweise `patientendatenAbfragen` als Ergebnis die Patientendaten.
  Adressdaten | Enthält bei positiver Durchführung der Funktion `ISasService.adressdatenAbfragen(String, String)` als Ergebnis die Zustelladresse der abgefragten SV-Person.
  Suchkriterien | Enthält die Suchkriterien für die Suche nach der SV-Nummer eines Patienten mittels der Funktion `svNummerAbfragen`.

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

Interface und Klassen des Sozialversicherungsnummernabfrageservice (SAS). Enthält den SOAP Endpoint `ISasService` sowie die dazu notwendigen Beans.
Inhalt der SAS package-Beschreibung:

- Allgemein

- Rechte
- Dynamische Ermittlung von Parameterwerten des e-card Regelwerks
- Online/Offline Status
- Prinzipielle Erklärungen für die Verwendung des SAS-Service

- Funktionalität des SAS-Service

- SV-Nummer abfragen
- Patientendaten abfragen
- Adressdaten abfragen

## Allgemein

Vertragspartner im SAS Service haben die Möglichkeit zu einem bestimmten Patienten die Personendaten abzufragen.

### Rechte

Für die Funktionen des SAS Services benötigt der Vertragspartner für die Durchführung generell das Recht SAS.CORE.
Wird eine Funktion des SAS Service ohne dieses Recht aufgerufen, erhält man die Exception AccessException.MISSING_SAS_CORE.
Je nach Funktion kann zusätzlich das Recht SAS.ADRESSABFRAGE benötigt werden.
Wird eine Funktion die dieses Recht benötigt ohne dieses Recht aufgerufen, erhält man die Exception AccessException.MISSING_SAS_ADRESSABFRAGE.
Mittels der Funktion getBerechtigungen() aus dem BASE Service ist es möglich, die Rechte des Vertragspartners abzufragen.
Welches Recht für welche Funktion benötigt wird, ist zusätzlich den Funktionsbeschreibungen der JavaDoc zu entnehmen (jeweils in den Vorbedingungen).

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

Es sind momentan keine Regelwerkswerte für die Nutzung des SAS Services 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.

### Prinzipielle Erklärungen für die Verwendung des SAS-Service

Das SAS Service stellt folgende Funktionalitäten zur Verfügung.

- Abfrage der Patientendaten eines Patienten
  Die Patientendaten enthalten folgende Parameter:

  Parameter | Bedeutung
  --- | ---
  Familienname | der Familienname des Patienten, nur versorgt wenn im eCS vorhanden
  Vorname | der Vorname des Patienten, nur versorgt wenn im eCS vorhanden
  Geburtsdatum | das Geburtsdatum des Patienten, nur versorgt wenn im eCS vorhanden
  SvNummer | die SV-Nummer des Patienten
  Todesdatum | das Datum des Todes des Patienten, nur versorgt wenn der Patient dem eCS als bestätigt verstorben gemeldet wurde
  TodesdatumBestaetigtKZ | Kennzeichen ob es sich um eine bestätigte Totmeldung des Patienten handelt, nur versorgt wenn der Patient dem eCS als verstorben gemeldet wurde (bestätigt oder unbestätigt)

  Die Patientendatenabfrage bietet zwei Anwendungsfälle:
  1. die Patientendaten (Vor-, Familienname und Geburtsdatum) sind bekannt, jedoch nicht die SV-Nummer
  Kommt der Patient ohne e-card und die SV-Nummer ist nicht bekannt, kann mittels der Funktion SvNummerAbfragen() (siehe hierzu SV-Nummern abfragen) die SV-Nummer (Bestandteil der zurückgelieferten Personendaten) abgefragt werden.
  Mit der ermittelten SV-Nummer können in Folge weitere Funktionen verwendet werden (z.B.: Durchführung einer Konsultation - mit ermittelter SV-Nummer und gesteckter o-card).
  Hinweis: Die Funktion retourniert nur dann ein Ergebnis wenn genau ein Ergebnis gefunden wird.
  2. die SV-Nummer ist bekannt, jedoch nicht die Patientendaten bzw. ist eine Aktualisierung der Patientendaten gewünscht
  Kommt der Patient ohne e-card und die SV-Nummer ist bekannt, können mittels der Funktion PatientendatenAbfragen() (siehe hierzu Patientendaten abfragen) die Patientendaten abgefragt werden.
  Hiermit können auch die bereits gespeicherten Personendaten in der Vertragspartnersoftware aktualisiert werden (z.B. Änderung der Personendaten aufgrund Namensänderung oder Tod des Patienten).
- Abfrage der Adressdaten eines Patienten
  Die Adressdaten enthalten folgende Parameter:

  Parameter | Bedeutung
  --- | ---
  Staatscode | Länderkürzel bestehend aus 3 Buchstaben zur Identifizierung des Landes (nach ISO-3-Standard).
  Plz | Postleitzahl
  Ort | Ortsname
  Abgabestelle | Genauerer Hinweis über die Abgabestelle (z.B. âz.H. Herrn Peter Müllerâ, âper Adresseâ, âbei Firmaâ)
  Strasse | Strasse (ohne Hausnummer)
  Hausnummer | Hausnummer
  StockTuerNummer | Stock- bzw. Türnummer, getrennt durch â/â
  Anschriftszusatz | Zusatzinformation, die einen genaueren Hinweis über die Adressierung gibt (z.B. âEcke Kundmanngasseâ oder â3. Hofâ)
  PostfachText | Bezeichnung des Postfachs abhängig vom jeweiligen Staat (z.B. âPostfachâ für Österreich, âp/o Boxâ für USA)
  PostfachNummer | Nummer des Postfachs

  Die Adressabfrage bietet einen Anwendungsfall:
  1. die SV-Nummer ist bekannt, jedoch keine Zustelladresse des Patienten
  Ist die SV-Nummer des Patienten bekannt, kann mittels der Funktion AdressdatenAbfragen() (siehe hierzu Adressdaten abfragen) die Adressdaten abgefragt werden.

## Funktionalität des SAS-Service

Die Funktionen des SAS sind nur im Online-Fall verfügbar. Voraussetzung für die Verwendung dieser Funktionen ist ein aktiver Online-Dialog. Die e-card des Patienten muss für die Durchführung dieser Funktionen nicht gesteckt werden.

### SV-Nummern abfragen

Durch diese Funktion kann die SV-Nummer eines Patienten aufgrund seines Namens und Geburtsdatums ermittelt werden. Ein Ergebnis wird nur dann zurückgeliefert, wenn ein eindeutiger Treffer gefunden wurde.

##### Szenario 5 - SV-Nummern abfragen:

### Patientendaten abfragen

Durch diese Funktion können die Patientendaten aufgrund der SV-Nummer ermittelt werden.

##### Szenario 5 - Patientendaten abfragen:

### Patientendaten abfragen

Durch diese Funktion können die Adressdaten aufgrund der SV-Nummer ermittelt werden.

##### Szenario 5 - Adressdaten abfragen: