at.chipkarte.client.base.soap

## Interface IBaseService

-     public interface IBaseService

  Dieses Service stellt die Basis-Funktionen zur Verfügung.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `commonTypes(SvtProperty svt)` Diese Funktion sollte niemals aufgerufen werden, sondern dient lediglich als technisches Hilfsmittel für die Generierung von Datentypen, die zwar vom BASE-Service selbst nicht benötigt werden, aber zentral anderen Services zur Verfügung gestellt werden sollen.
    `String[]` | `getBerechtigungen(String dialogId)` Diese Funktion gibt die mit dem Dialog verbundenen Rechte im Format `Service.Recht` zurück (siehe `Berechtigungen`).
    `BaseProperty[]` | `getFachgebieteByOrdId(String dialogId, String ordId, String taetigkeitsBereichId)` Mit dieser Funktion werden alle gültigen Fachgebiete einer bestimmten Ordination geliefert, für die der Vertragspartner das Konsultationsrecht besitzt.
    `Message[]` | `getMessages(String dialogId, Boolean newOnly)` Diese Funktion liefert die aktuellen Nachrichten vom Messaging-System des e-card-Servers (Push-Mechanismus).
    `Integer` | `getMinMsgPollingIntervall(String dialogId)` Die Funktion liefert das minimale Nachrichten-Poll-Intervall.
    `VertragsDaten[]` | `getVertraege(String dialogId)` Diese Funktion liefert Daten zu den Verträgen des Vertragspartners.
    `boolean` | `hasUnreadMessages(String dialogId)` Diese Funktion ermittelt, ob für den Partner, der mit der angegebenen Dialog-Id angemeldet ist, ungelesene Nachrichten vorhanden sind.
    `MessagePollResult` | `pollMessages(String dialogId, String suchzeitpunkt)` Diese Funktion liefert die aktuellen Nachrichten vom Messaging-System des e-card-Servers inklusive weiterer Parameter.
    `void` | `uebersiedelnOrdination(String dialogId, String ordinationId, Boolean forceUebersiedlung)` Diese Funktion übersiedelt eine Ordinationsadresse eines Vertragspartners.

- - ### Method Detail

    - #### hasUnreadMessages

          boolean hasUnreadMessages(String dialogId)
                             throws DialogException,
                                    ServiceException

      Diese Funktion ermittelt, ob für den Partner, der mit der angegebenen Dialog-Id angemeldet ist, ungelesene Nachrichten vorhanden sind.
      Wenn der Dialog nicht mehr gültig ist, wird eine DialogException `DIALOG_INVALID` geliefert.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

      Laufzeitgruppe: Kurz

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs zu dem Statusinformationen abgefragt werden sollen.
      Returns:
        Kennzeichen, ob neue Nachrichten vorhanden sind oder nicht.
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### uebersiedelnOrdination

          void uebersiedelnOrdination(String dialogId,
                                      String ordinationId,
                                      Boolean forceUebersiedlung)
                               throws DialogException,
                                      ServiceException

      Diese Funktion übersiedelt eine Ordinationsadresse eines Vertragspartners.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

      Laufzeitgruppe: Mittel

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs
        `ordinationId` - Id der zu übersiedelnden Adresse, siehe auch `Ordination.isUebersiedeln()`. Die gültigen Ordinationsadressen sind im Objekt `VertragspartnerV2` enthalten (siehe `VertragspartnerV2`, das von der Funktion `authenticateDialog` / `authenticateDialogEnt` geliefert wird. Für die übersiedelte Adresse (die ordinationId) kann in Zukunft kein Dialog mehr aufgebaut werden.
        `forceUebersiedlung` - Dieser Parameter bestimmt, ob vor Durchführung der Übersiedlung auf eventuell vorhandene Offlinekonsultationen für die abzuschließende Ordination geprüft werden soll.
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_CANCELED`, `DIALOG_TIMEOUT`, `DIALOG_INVALID`, `ORDINATION_ID_NOTSET`, `ORDINATION_ID_INVALID`, `NACHFOLGE_ORDID_NOTFOUND`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID` `DialogExceptionConstants.UEBERSIEDELN_OFFLINEDATA_DETECTED`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### getMessages

          Message[] getMessages(String dialogId,
                                Boolean newOnly)
                         throws ServiceException,
                                DialogException

      Diese Funktion liefert die aktuellen Nachrichten vom Messaging-System des e-card-Servers (Push-Mechanismus).
      Die Benachrichtigung, dass eine neue Nachricht vorliegt, erfolgt durch Pollen der Funktion `hasUnreadMessages`. Durch diesen Mechanismus ist es möglich, asynchrone Nachrichten vom e-card-Serversystem zu übertragen. Dieser Messaging-Mechanismus wird serviceübergreifend verwendet. An welches Service die Nachricht adressiert ist, kann aus dem Objekt `Message` ermittelt werden.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

      Laufzeitgruppe: Lang

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs
        `newOnly` - Wenn true, werden nur die neuen Nachrichten geliefert, sonst alle. Das Flag newOnly wird nur innerhalb des Dialogs verwaltet.
      Returns:
        Array von Messages
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID`, `PUSHMSG_NOT_ALLOWED`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### pollMessages

          MessagePollResult pollMessages(String dialogId,
                                         String suchzeitpunkt)
                                  throws ServiceException,
                                         DialogException

      Diese Funktion liefert die aktuellen Nachrichten vom Messaging-System des e-card-Servers inklusive weiterer Parameter.
      Es werden

      - die Nachrichten ab dem angegebenen Suchzeitpunkt,
      - der nächste Suchzeitpunkt in Millisekunden sowie
      - ein Kennzeichen, ob die Anzahl der Nachrichten begrenzt wurde und somit weitere Nachrichten verfügbar sind
      geliefert.
      Für eine lückenlose und Duplikat-freie Zustellung der Nachrichten, sollte beim Polling für das Abrufen der Nachrichten der Parameter Suchzeitpunkt mit dem zuletzt zurückgegebenen nächsten Suchzeitpunkt versorgt werden. Zwischen den einzelnen Aufrufen muss ein gewisses Intervall eingehalten werden. Wird das vorgeschriebene Intervall unterschritten, erfolgt keine Antwort. Die Werte des Abfrageintervalls sind mittels der Funktion `getMinMsgPollingIntervall` abzufragen.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).
      - Der Dialog wurde unter Verwendung des Poll-Mechanismus für das Abfragen von Nachrichten erstellt.
        (`authenticateDialog`: pushMessageEnabled=false bzw. `authenticateDialogEnt`: pushMessageEnabled=false)

      Laufzeitgruppe: Lang

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs
        `suchzeitpunkt` - Suchzeitpunkt in Millisekunden, ab dem neue Nachrichten geliefert werden sollen Format: JJJJMMTTHHmmssccc
      Returns:
        Array von MessagePollResult
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID` `POLLMSG_NOT_ALLOWED`, `SUCHZEITPUNKT_INVALID`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### getMinMsgPollingIntervall

          Integer getMinMsgPollingIntervall(String dialogId)
                                     throws ServiceException,
                                            DialogException

      Die Funktion liefert das minimale Nachrichten-Poll-Intervall.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).
      - Der Dialog wurde unter Verwendung des Poll-Mechanismus (`authenticateDialog`: pushMessageEnabled=false bzw. `authenticateDialogEnt`: pushMessageEnabled=false) für das Abfragen von Nachrichten erstellt.

      Laufzeitgruppe: Kurz

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs
      Returns:
        Poll-Intervall
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID` `POLLMSG_NOT_ALLOWED`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### getVertraege

          VertragsDaten[] getVertraege(String dialogId)
                                throws ServiceException,
                                       DialogException

      Diese Funktion liefert Daten zu den Verträgen des Vertragspartners.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

      Laufzeitgruppe: Mittel

      Replayability: Nein

      Returns:
        Vertragsdaten
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `DIALOG_OFFLINE_MODUS_CHANGED_ONLINE`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### getFachgebieteByOrdId

          BaseProperty[] getFachgebieteByOrdId(String dialogId,
                                               String ordId,
                                               String taetigkeitsBereichId)
                                        throws DialogException,
                                               ServiceException

      Mit dieser Funktion werden alle gültigen Fachgebiete einer bestimmten Ordination geliefert, für die der Vertragspartner das Konsultationsrecht besitzt.

      Voraussetzung:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

      Laufzeitgruppe: Kurz

      Replayability: Nein

      Parameters:
        `dialogId` - Dialog-Id eines aufgebauten Dialogs
        `ordId` - Id der Ordination, für deren Verträge die Fachgebiete abgefragt werden sollen. Wenn null, werden die gültigen Fachgebiete für die Ordinationsadresse des aktuellen Dialogs geliefert.
        `taetigkeitsBereichId` - Id des Tätigkeitsbereichs, für den die Fachgebiete abgefragt werden sollen. Wenn null, werden die gültigen Fachgebiete für die Ausprägung des aktuellen Dialogs geliefert.
      Returns:
        Array der Fachgebiete für eine bestimmte Ordination, siehe auch `BaseProperty`
      Throws:
        `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
        `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `ORDINATION_ID_INVALID`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

    - #### getBerechtigungen

          String[] getBerechtigungen(String dialogId)
                              throws ServiceException,
                                     DialogException

      Diese Funktion gibt die mit dem Dialog verbundenen Rechte im Format `Service.Recht` zurück (siehe `Berechtigungen`).

      Voraussetzungen:

      - Der Dialog wurde erfolgreich und vollständig aufgebaut.
      - Online-Status (siehe Online-/Offline-Status).

    Laufzeitgruppe: Kurz

    Replayability: Nein

Parameters:
  `dialogId` - Dialog-Id eines aufgebauten Dialogs
Returns:
  Array der Rechte (String-Array)
Throws:
  `ServiceException` - `INTERNAL_ERROR`, `INCOMPATIBILITY_EXCEPTION`
  `DialogException` - `DIALOG_INVALID`, `DIALOG_TIMEOUT`, `ORDINATION_ID_NOTSET`, `DIALOG_CANCELED`, `ORDINATION_ID_INVALID`, `TOO_MANY_OPEN_DIALOGS_FOR_OR_CLI`, `DIALOG_UNKNOWN`, `ORDINATION_ID_UNKNOWN`, `CORRUPT_DIALOGID`, `INVALID_TRANSACTION_ID`, `MULTIPLE_DIALOGID`, `DIALOG_CURRENTLY_USED`

- #### commonTypes

      void commonTypes(SvtProperty svt)
                throws ServiceException,
                       DialogException,
                       AccessException,
                       PatientServiceException,
                       CardException

  Diese Funktion sollte niemals aufgerufen werden, sondern dient lediglich als technisches Hilfsmittel für die Generierung von Datentypen, die zwar vom BASE-Service selbst nicht benötigt werden, aber zentral anderen Services zur Verfügung gestellt werden sollen.
  Throws:
    `ServiceException`
    `DialogException`
    `AccessException`
    `PatientServiceException`
    `CardException`