samedi HL7gateway

Version v1.2.0

iMedOne®

Konfiguration

Die Konfiguration muss sowohl über eine TOML Datei im HL7Gateway als auch über das samedi-Konto der Institution vorgenommen werden.

Im samedi-Konto der Institution sind die folgenden Einstellungen zu konfigurieren

Patientenstammdaten als Pflichtangaben definieren

In iMedOne® können einige Patientenstammdaten, wie Vorname, Nachname oder Geburtsdatum als Pflichtangaben definiert sein. Die Definition der Pflichtangaben in iMedOne® und samedi müssen übereinstimmen. Um dies zu gewährleisten, prüfen Sie, welche Patientenstammdaten auf der iMedOne®-Instanz als Pflichtangaben definiert sind und stellen Sie sicher, dass die gleichen Angaben auch im Konto der samedi-Institution als Pflichtangaben definiert sind. Um zu prüfen, welche Daten in samedi als Pflichtangaben definiert sind, gehen Sie wie folgt vor:

  • Klicken Sie in samedi auf das Benutzer-Symbol in der rechten oberen Ecke
  • Klicken Sie auf Einstellungen
  • Klicken Sie im Einstellungsmenü auf der linken Seite auf den Bereich „Patienten“
  • Klicken Sie auf Stammdaten und prüfen, ob alle in iMedOne® definierten Pflichtangaben auch in samedi als solche definiert sind.
  • Nehmen Sie notwendige Änderungen vor und Klicken auf „Speichern“

Terminarten in samedi und iMedOne®

Voraussetzung für die Integration ist, dass samedi weiß, welche samedi-Terminart welcher iMedOne® Terminart entspricht bzw. zugeordnet ist. Diese Zuordnung kann über das Feld „Referenz“ in den samedi Terminart-Einstellungen erfolgen.

Um die Einstellungen in samedi vorzunehmen, gehen Sie wie folgt vor:

  • Klicken Sie in samedi auf das Benutzer-Symbol in der rechten oberen Ecke
  • Klicken Sie auf Einstellungen
  • Klicken Sie im Einstellungsmenü auf der linken Seite auf den Bereich „Kalender“ und dann auf den Tab “Terminarten”
  • Klicken Sie in der Übersicht der Terminarten auf die Kopfzeile der Tabelle auf den kleinen Pfeil, und wählen im Untermenü “Spalten” das Feld “Referenz aus”
  • Wählen Sie die Terminart, die in iMedOne® integriert werden soll aus. Klicken Sie auf die Spalte Referenz für diesen Eintrag und fügen Sie den Namen der iMedOne® Terminart als Referenz hinzu
  • Wiederholen Sie das für alle relevanten Terminarten

Konfiguration des Gateways

Für die Integration ist eine TOML Datei mit einer entsprechenden Konfiguration notwendig. Im Folgenden sind die einzelnen hierzu notwendigen Konfigurationsschritte definiert. Am Ende finden Sie eine Zusammenfassung dieser.

[samedi] section

endpoint = "https://app.samedi.de"

Dieser muss auf die URL von samedi verweisen, um sich bei samedi zu authentifizieren und alle benötigten Daten abzurufen.

polling_interval_seconds = 10

Dies entspricht dem Intervall in Sekunden, in dem das Gateway neue Termindaten abruft.

[samedi.accounts.default] accounts section

[samedi.accounts.default] wird verwendet um die Verbindung zum Gateway aufzubauen.

username = "admin-auto-otto"

Benutzername, der für den Login in das samedi-Konto der Institution verwendet wird.

password = "tester"

Passwort für den oben genannten Benutzer, das für den Login benötigt wird.

appointments_polling_enabled = true
patients_polling_enabled = true

Da in iMedOne® ein Patient angelegt werden muss, bevor ein Termin erzeugt wird, und alle anderen Terminsynchronisierungen ebenfalls vom Patienten abhängen, müssen sowohl die Abfrage für den Patienten als auch für den Termin aktiviert sein.

Hinweis: Sie können dem Konto innerhalb der Konfiguration einen Namen geben. Im Beispiel oben verwenden wir “default” als Namen für das Konto, aber es kann auch ein anderer Wert verwendet werden, wie z. B.: "default", "samedi_account" usw.

[imedone] section

Im Folgenden wird die zentrale Konfiguration der iMedOne®-Instanz beschrieben.

samedi_account = "default"

Verweis auf die oben beschriebene Konfiguration. Wenn Sie einen anderen Namen (bspw. [samedi.accounts.user1]) muss der Wert entsprechend user1 lauten.

username = "imedoneusername"

Benutzername, der für die Authentifizierung in iMedOne® verwendet wird.

password = "secretpass"

iMedOne® Passwort für den oben definierten Benutzernamen

hospital_unit = "HOSPITALUNIT"

iMedOne® Krankenhaus-Einheit, die für die Authentifizierung und die Kommunikation mit der iMedOne®-API verwendet wird.

base_api_endpoint = "http://imedone.endpoint/database/"

Endpunkt der iMedOne®-Instanz, über den der Gateway kommunizieren wird.

listen_address = "localhost:8086"

Die listen_address ist die Netzwerkadresse eines lokal betriebenen Webservers. Die zu verwendende Adresse hängt von der jeweiligen Netzwerkkonfiguration ab. Jede URL mit dem Schema userinfo, host und port ist gültig.

Dieser Webserver verarbeitet alle eingehenden iMedOne®-Anfragen und wird ausschließlich für Termine und nicht für Patienten verwendet.

Es existieren drei selbsterklärende Endpunkte:

/CreatePatientAppointment
/UpdatePatientAppointment
/CancelPatientAppointment

Jedes Mal, wenn ein Termin erstellt, aktualisiert oder storniert wird, kontaktiert iMedOne® diese Endpunkte über die konfigurierte Listening-Adresse. Beachten Sie, dass Sie diese Adresse auch in iMedOne® konfigurieren müssen, damit die Schnittstelle fehlerfrei funktioniert. Sobald der Endpunkt von iMedOne® kontaktiert wird, wird die Änderung an samedi® weitergegeben.

appointment_types = ["Appointment Type One", "Appointment Type Two"]

Referenz der Terminarten, die wie oben beschrieben im samedi-Konto konfiguriert wurden.

Synchronisierung von Terminart-Verfügbarkeiten aus iMedOne zu samedi

poll_appointment_types = ["Appointment Type One", "Appointment Type Two"]

Liste der Terminarten, deren Verfügbarkeit synchronisiert werden soll.

poll_range_in_days = 7

Wie viele Tage werden mit einem API-Aufruf in iMedOne maximal abgefragt.

poll_max_range_in_days = 90

Wie weit in die Zukunft werden Verfügbarkeiten synchronisiert.

poll_delay_in_milliseconds = 1000

Konfiguriert die Wartezeit zwischen API-Aufrufen an iMedOne.

Die fertig konfigurierte TOML Datei sollte wie folgt aussehen:

[samedi]
endpoint = "https://app.samedi.de"
polling_interval_seconds = 10

[samedi.accounts.default]
username = "default"
password = "secretpass"
appointments_polling_enabled = true
patients_polling_enabled = true

[imedone]
samedi_account = "default"
username = "imedoneusername"
password = "password"
hospital_unit = "HOSPITALUNIT"
base_api_endpoint = "http://imedone.endpoint/database/"
listen_address = "localhost:8086"
appointment_types = ["Appointment Type One", "Appointment Type Two"]
poll_appointment_types = ["Appointment Type One"]
poll_range_in_days = 7
poll_max_range_in_days = 90
poll_delay_in_milliseconds = 1000