Stand: 24.02.2021

1. Einführung

a) URL

Die URL für die Test-Umgebung lautet: https://erixaapowebservice-int.azurewebsites.net
Dabei wird der Server https://transfer.das-erezept.de verwendet.


b) Authentifizierung

Basic Auth mit dem eRiXa-Account
„ApiKey“ im Header (erhalten Sie per E-Mail von Stefan Odenbach)


c) Erster Request

Verwenden Sie für den ersten Request die einfache Login-Funktion:
GET https://erixaapowebservice-int.azurewebsites.net/api/1.6/login



2. Live

Die URL für die Live-Umgebung lautet: https://smartapi.erixa.de
Dabei wird der Server https://free.erixa.de verwendet.

Wenn Sie unsere API auf Ihrer Webseite einbinden, teilen Sie uns bitte die URL dieser Webseite mit, damit wir diese in unsere Liste der sicheren Webseiten aufnehmen können (Stichwort CORS). Für die Test-Umgebung ist dies nicht notwendig.


3. Funktionalität

a) Registrierung

Um die App nutzen zu können, muss jeder Benutzer sich registrieren.
POST /api/{version}/account/register

Es wird eine Email an die angegebene Emailadresse gesendet, damit der Benutzer ein Passwort festlegen kann.


b) Login

Jeder Benutzer muss bei der 1. Anmeldung in der App seine Stammdaten hinterlegen. Ansonsten ist eRiXa nicht verwendbar.

GET /api/{version}/login
Prüft die Zugangsdaten des eRiXa-Accounts
Prüft, ob bereits Stammdaten hinterlegt sind
Prüft die Benutzer-Rolle

POST /api/{version}/userdata
Erstellen oder Aktualisieren der Stammdaten

GET /api/{version}/userdata
Abrufen der Stammdaten


c) Rezepte abrufen

Mit folgender Funktion können alle zugeordneten unbearbeiteten Rezepte eines Benutzers (Patient oder Apotheke) abgerufen werden:

GET /api/{version}/prescription


Mit folgenden Funktionen kann ein Patient weitere Daten eines Rezepts abrufen:

GET /api/{version}/prescription/status/{drugstoreEmailAddress}/{externalId}

GET /api/{version}/prescription/transferdata/{prescriptionId}
Hat der Arzt die Rezept- sowie Patientendaten beim Senden des Rezepts über die API angegeben, so können diese über diese Funktion ausgelesen werden.

POST /api/{version}/prescription/file


Mit folgenden Funktionen kann eine Apotheke weitere Daten eines Rezepts abrufen:

GET /api/{version}/prescription/download/{externalId}

GET /api/{version}/prescription/drugstoredata/{externalId}


d) Rezepte vom Arzt an Patienten weiterleiten

Rezepte können von einem Arzt mittels des HotFolder-Services von eRiXa oder mittels folgender Funktion gesendet werden:

POST /api/{version}/prescription/doctor/upload


e) Rezepte vom Patienten an Apotheke weiterleiten

Rezepte können von Patienten mittels folgender Funktionen an Apotheken gesendet werden:

POST /api/{version}/prescription/transfer
Bestehendes Rezept mittels „External Id“ weiterleiten

POST /api/{version}/prescription/uploadtransfer
Neues Rezept (z.B. fotografiert) als Base64-String weiterleiten


f) Apotheken suchen/anzeigen

Mit verschiedenen Filter-Kriterien kann nach Apotheken gesucht werden. Wenn möglich sollte die aktuelle Position (Latitude, Longitude) angegeben werden, um die nächsten Apotheken anzuzeigen. Wird dies nicht angegeben, so wird nur die Stammapotheken, falls vorhanden, zurückgegeben.

POST /api/{version}/drugstore
Als SearchType wird All (0) verwendet.
Wenn HasToBeOpen = true, dann werden nur aktuell geöffnete Apotheken angezeigt. Wenn der Wert false ist, werden alle angezeigt.


g) Ärzte suchen/anzeigen

Mit verschiedenen Filter-Kriterien kann nach Ärzten gesucht werden. Wenn möglich sollte die aktuelle Position (Latitude, Longitude) angegeben werden, um die nächsten Ärzte anzuzeigen. Wird dies nicht angegeben, so wird nur der Stammarzt, falls vorhanden, zurückgegeben.

POST /api/{version}/doctor


h) OCR

Für die OCR-Funktionen geben Sie einfach den base64-codierten String direkt als Body mit (kein JSON notwendig).


i) Webshop

  • Es muss uns eine GET-Funktion bereitgestellt werden, die wir über die App unter folgender URL aufrufen können: <Ihre-URL>/?externalIds=abcd12345,efgh6789&mode=test
    • Wir geben komma-getrennt eine oder mehrere externalIds mit, die für die nachfolgenden Funktionen verwendet werden können
    • mode=test für das Testen und ohne diesen Parameter wäre das dann für die Live-Umgebung
  • Nachdem der Patient dann das Rezept gesendet und die GET-Funktion aufgerufen wurde, können die Rezept-Daten mit folgenden Funktionen abgerufen werden:
    • /prescription/drugstoredata/{externalId}
    • /prescription/download/{externalId}
  • Zusätzlich muss der Status auf „Reserviert“ gesetzt werden, da ansonsten das Rezept nach 30 Minuten automatisch storniert wird. Dies haben wir zur Sicherheit eingebaut, sollte es einen Fehler gegeben haben und die externalId im Webshop nicht angekommen sein, sodass das Rezept dann nicht verloren ist.
    • /prescription/status/reserved
  • Dann gibt es die Möglichkeit das Rezept zu stornieren oder einzulösen:
    • /prescription/status/redeemed
    • /prescription/status/cancelled


j) Single-Sign-On

  • Single-Sign-On wurde in eRiXa umgesetzt, nicht indem mit Zugangsdaten von Google, Facebook, oä. eingeloggt werden kann, sondern indem ein neuer eRiXa-Account im Hintergrund erstellt wird. Hierfür wird eine Fake-Emailadresse als auch ein Fake-Name verwendet. Das Passwort für diesen Account kann selbst bestimmt werden und muss vom Partner-System verwaltet/gespeichert werden. Um Rezepte von diesem Account abrufen zu können, muss einfach wie üblich bei den API-Calls mit diesem Account via Basic Auth authentifiziert werden.
  • Mit dieser Funktion kann ein Account angelegt werden. Die Fake-Emailadresse wird mittels der ID generiert.
    • z.B. ID: 123 –> Fake-Emailadresse: 123@erixa.de
    • /account/registerWithPassword
  • Mit dieser Funktion kann das Passwort von Fake-Accounts geändert werden, falls diese verloren gegangen sind:
    • /account/passwordForErixaAccount