
Il Mirth è uno strumento Open Source per la gestione, trasformazione e routing dei messaggi HL7. E’ interamente sviluppato in Java e dispone di strumenti di sviluppo facili da usare ed allo stesso tempo molto potenti. La gestione dei flussi informativi è affidata ai canali: un canale può essere inteso fondamentalmente come un componente in grado di prendere in ingresso informazioni di vario tipo (interrogazioni da database, file XML, oltre che naturalmente messaggi HL7), gestirle attraverso l’applicazione di una serie di filtri e trasformazioni, e mandarle in uscita verso i vari sistemi, oppure verso altri canali. Queste operazioni possono essere eseguite in modo semplice grazie all’utilizzo delle HL7 API, librerie Java per la gestione dei messaggi HL7, integrate in Mirth: queste ultime forniscono tutto il necessario per manipolare i messaggi HL7 tramite strumenti comuni agli sviluppatori (file XML, vettori) e di conseguenza poterli modificarefacilmente.
I filtri e le trasformazioni vengono eseguiti tramite degli script che utilizzano le suddette librerie Java, e definiscono i passi e le trasformazioni da operare sui messaggi. In uscita le informazioni possono essere salvate in locale oppure instradate verso altri canali. Mirth è uno strumento molto potente e versatile in quanto dispone degli strumenti necessari a manipolare imessaggi HL7 da un punto di vista puramente sintattico e degli strumenti necessari ad implementare una vera e propria infrastruttura di rete per la gestione delle comunicazioni tra i vari sottosistemi ospedalieri: ciascuno di questi può essere interfacciato tramite vari canali di comunicazione da e verso l’esterno (gateway per la gestione dei messaggi inbound e outbound).
L’architettura di Mirth è composta essenzialmente da due parti principali:
1. Un server che mette a disposizione tutti glistrumenti per la progettazione e l’utilizzo dei vari flussi, sul quale è integrato un database di riferimento per la gestione dei log e delle componenti dell’applicazione (canali, script, listeners e senders, ecc.).
2. Un client che fornisce l’interfaccia grafica per la gestione dell’applicazione e la progettazione dei flussi. Permette la gestione e l’esecuzione dei canali e l’analisi dei risultati, tramite delle opportune schermate.