Schnittstelle MedDV
Allgemein
Die Schnittstelle von EDP zu MedDV unterstützt folgende Funktionen:
| Funktion | Daten senden | Daten empfangen |
|---|---|---|
| Einsatzdaten | ✔ | ✘ |
✔ = Die Schnittstelle unterstützt diese Funktion. ✘ = die Schnittstelle unterstützt diese Funktion nicht. (Leer) = Entfällt.
Über die Schnittstelle MedDV können Einsatzdaten an das NIDA Gateway von MedDV gesendet werden. Hierdurch werden die Grunddaten des Einsatzes sowie die Daten der beteiligten Einsatzmittel übertragen. Für die Schnittstelle ist das Dokument „NIDAgateway Alarmierung REST API“ nötig, welches direkt bei MedDV angefragt werden muss.
Funktionsweise
Die Einsatzdaten werden per HTTP-POST-Request an den Endpunkt /alarming.3/sendAlarmAsync des konfigurierten Servers gesendet. Die Daten werden dabei als JSON-Payload übertragen.
Konfiguration
Die Konfiguration der Schnittstelle erfolgt über die EDP-Oberfläche. Folgende Parameter müssen konfiguriert werden:
- Server-URL: Die Basis-URL des MedDV NIDA Gateways (z.B.
https://nida.example.com). - API-Key: Der für die Authentifizierung am Gateway benötigte API-Schlüssel.
- SQL-Abfrage: Da je nach Projekt die Feldzuordnung variieren kann, muss innerhalb der Schnittstelle eine SQL-Abfrage hinterlegt werden. Innerhalb der Abfrage müssen die Felder so umbenannt werden (mittels Alias, z.B.
SELECT einsatz_id AS id FROM …), dass sie identisch mit den von dem Gateway erwarteten Feldbezeichnungen sind.
Die SQL-Abfrage kann den Platzhalter %EINSATZNUMMER% enthalten, welcher durch die aktuelle Einsatznummer Mittels ersetzt wird.
Folgende SQL-Abfrage kann als Basis genutzt werden:
SELECT CONCAT(E.EINSATZNUMMER,'_',em.rufname) AS alarmingId, 'EDP' AS controlCenterId, (SELECT EXTERNAL_ID FROM einsatzmittel WHERE RUFNAME=em.rufname) AS callSign, RIGHT(E.EINSATZNUMMER,6) AS missionNumber, CONCAT(E.EINSATZNUMMER,'_',em.rufname) AS missionNumberGlobal, (SELECT TYP FROM einsatzmittel WHERE RUFNAME=em.rufname) AS resourceType, (SELECT GROUP_CONCAT(eme.rufname ORDER BY eme.rufname SEPARATOR ', ') FROM em_einsaetze eme WHERE eme.einsatznummer = e.einsatznummer) AS involvedCallsigns, EINSATZART AS missionType, STICHWORT AS controlCentertransportType, SONDERSIGNAL <> 0 AS flashingLights, SCHLAGWORT AS missionCode1Text, MELDUNG AS missionCode2Text, E.OBJEKTNAME AS missionLocationEstablishment, E.STATION AS missionLocationEstablishment2, E.BEMERKUNG AS missionLocationComment, E.STRASSE AS missionLocationStreet, E.HAUSNUMMER AS missionLocationHousenumber, E.PLZ AS missionLocationZipCode, E.ORT AS missionLocationPlace, E.ORTSTEIL AS missionLocationDistrict, E.KOORDY AS missionLatitude, E.KOORDX AS missionLongitude, E.ZOBJEKTNAME AS targetEstablishment, E.ZSTATION AS targetEstablishment2, E.ZSTRASSE AS targetStreet, E.ZHAUSNUMMER AS targetHousenumber, E.ZPLZ AS targetZipCode, E.ZORT AS targetPlace, E.ZORTSTEIL AS targetDestrict, P.NAME AS patientLastName, P.VORNAME AS patientFirstName, IF(STR_TO_DATE(P.GEBDATUM, '%d.%m.%Y') IS NOT NULL, STR_TO_DATE(P.GEBDATUM, '%d.%m.%Y'), NULL) AS patientBirthday, CONVERT_TZ(em.alarmiert, @@session.time_zone, '+00:00') AS missionStatusAlarm, CONVERT_TZ(em.status1, @@session.time_zone, '+00:00') AS missionStatus3, CONVERT_TZ(em.status2, @@session.time_zone, '+00:00') AS missionStatus4, CONVERT_TZ(em.status3, @@session.time_zone, '+00:00') AS missionStatus7, CONVERT_TZ(em.status4, @@session.time_zone, '+00:00') AS missionStatus8, CONVERT_TZ(em.status5, @@session.time_zone, '+00:00') AS missionStatus1, CONVERT_TZ(em.status6, @@session.time_zone, '+00:00') AS missionStatus2 FROM einsaetze e INNER JOIN em_einsaetze em ON e.einsatznummer=%EINSATZNUMMER% and e.EINSATZNUMMER=em.einsatznummer and em.AKTIV=1 and em.RUFNAME=%RUFNAME% LEFT JOIN patienten P ON p.einsatznummer=e.einsatznummer;
Der Parameter „controlCenterID“, der Beispielhaft mit EDP gefüllt ist, kann natürlich mit der eigenen Organisationsbezeichnung angepasst werden.
Damit die Zuordnung der Einsatzmittel korrekt funktionieren kann, muss als CallSign der Einsatzmittel der Identifier aus MedDV eingetragen werden. In der oberen SQL-Abfrage müssen die Identifier also als Externe ID der Einsatzmittel in EDP hinterlegt werden.
Auslösung der Schnittstelle
Die Schnittstelle selbst kann über Aufgaben ausgelöst werden. Das heißt, dass einerseits bei Zuteilung eines Einsatzmittels bzw. der Alarmierung über die Aufgabe die Einsatzübertragung erfolgen kann. Zudem lässt sich auch zu einem späteren Zeitpunkt erneut eine Übertragung anstoßen. Beim Auslösen einer Aufgabe wird grundsätzlich für jedes im Einsatz beteiligte Einsatzmittel eine Alarmierung bei MedDV angestoßen. Dabei wird als „call_sign“ (Identifier seitens MedDV) das Feld „call_sign“ aus der SQL-Abfrage verwendet. In der oben gezeigten SQL-Abfrage ist dies das Feld „external_id“.
Ab Schnittstellen-Version 2025.1.2.1:
Der Aufgabe kann ein Rufname als Wert übergeben werden, dann wird nur das entsprechende Einsatzmittel alarmiert. Falls der Wert der Aufgabe leer ist, werden alle Einsatzmittel im Einsatz alarmiert.
Besonderheiten
Hierbei ist auch zu beachten, dass die Statuszeiten immer nur übertragen werden, wenn eine erneute Auslösung der Schnittstelle erfolgt. Die Schnittstelle liest die zum Zeitpunkt der Ausführung aktuellen Daten aus der Datenbank gemäß der konfigurierten SQL-Abfrage.