Die Möglichkeit Datenbankabfragen zeitgesteuert mit Mirth Connect durchzuführen, legt es nahe das System auch für Monitoringzwecke zu verwenden. Hier eine Beispielabfrage, die in einem externen System eine Anzahl von nicht verarbeiteten Events abfragt:
(select 'ISPRO_MDM_EVENTREADER_KHV' as jaifcomponent, count(1) as events from fieventstate where facility_interfaceid = 50001 and EVENTSTATETYPEID = 0) UNION (select 'MIRTH_UKB_ADT_EVENTREADER' as jaifcomponent, count(1) as events from fieventstate where facility_interfaceid = 500001 and EVENTSTATETYPEID = 0) UNION (select 'MIRTH_UKB_BAR_EVENTREADER' as jaifcomponent, count(1) as events from fieventstate where facility_interfaceid = 70010 and EVENTSTATETYPEID = 0)
Das Ergebnis der Abfrage wird dann in folgender XML-Struktur abgelegt:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <result> <jaifcomponent>value</jaifcomponent> <events>value</events> </result>
Über einen Filter erfolgt dann die Weiterverarbeitung:
process = false; events = channelMap.get('events'); alert = globalChannelMap.get(globalChannelMap.get('jaifcomponent')); if (alert == undefined) { alert = false } else if (alert == 'NEW') { alert = true } else alert = false; if (alert == false) { if (Number(events) > Number(channelMap.get('threshold'))) { globalChannelMap.put('alert','NEW'); globalChannelMap.put(globalChannelMap.get('jaifcomponent'),'NEW'); process = true; } } else if (Number(events) < Number(channelMap.get('threshold'))) { globalChannelMap.put('alert','CLOSED'); globalChannelMap.put(globalChannelMap.get('jaifcomponent'),'CLOSED'); process = true; } return process;
Wenn eine als Channelvariable definierte Variable threshold definiert ist, erfolgt eine Weiterleitung, wenn die Schwellwertvariable überschritten ist, bzw. wieder unterschritten ist, sofern zuvor ein Alarm ausgelöst wurde. In beiden Fällen wird dann über den SMTP-Sender eine Mail versendet:
Subject: ${jaifcomponent}: ${alert} alert - ${events} export events Body: Anzahl unverarbeiteter Export events in ${jaifcomponent} ist ${events}.