• Non ci sono risultati.

Software a supporto del modello

3.3 L’Enterprise Service Bus, Mirth Connect

ESB è l’acronimo di Enterprise Service Bus e costituisce un'infrastruttura software che fornisce servizi di supporto a Service-oriented architecture complesse. Si basa su sistemi interconnessi con tecnologie eterogenee, e fornisce in maniera consistente servizi di coordinamento, sicurezza, messaggistica, instradamento intelligente e trasformazioni, agendo come una strada attraverso cui viaggiano le informazioni dei servizi software e componenti applicativi. (Wähner, 2013)

Per lo scopo di questa tesi, l’ESB viene sfruttato per permettere la comunicazione fra i vari sistemi software del percorso, il FSE e il PDTA Manager.

L’ESB utilizzato per questo modello è Mirth Connect.

Mirth Connect è un motore di un'interfaccia open source che consente un invio bidirezionale di messaggi tra sistemi e applicazioni su più mezzi di trasporto.

Mirth Connect utilizza un'architettura basata su un canale per collegare i sistemi HIT e consentire la comunicazione tra i vari software dei messaggi da filtrare una volta trasformati e instradati nell’Enterprise Service Bus secondo regole precise definite dall’utente. (HIT è l’acronimo di Health Information Tecnology, tecnologia di informazione sanitaria e descrive la tecnologia dell'informazione applicata all'assistenza sanitaria e alla salute. Un sistema HIT supporta la gestione delle informazioni di salute attraverso i sistemi informatici e lo scambio in rete di informazioni sanitarie tra consumatori, i fornitori, i contribuenti, e monitor di qualità). (Chaudhry, 2006)

96 L'invio e la ricezione di messaggi avviene mediante uno dei possibili protocolli:

 TCP / MLLP

 Database (MySQL, PostgreSQL, Oracle, Microsoft SQL Server, ODBC)  File (locale file system e condivisioni di rete)

 documenti PDF e RTF  JMS  FTP / SFTP  HTTP  SMTP  SOAP (su HTTP)

(Mirth Connect User Guide, 2015)

Fig. 3.2.1: schema per il flusso dei dati in Mirth

I messaggi entrano in un connettore source, che nella figura 3.2.1 è rappresentata mediante un’architettura a Gateway. Su questo si ha il passaggio attraverso un pre-processore di script, in cui i messaggi vengono convertiti in XML.

Segue il passaggio attraverso i filtri: il messaggio viene valutato mediante delle regole booleane e inoltrato ai trasformatori in caso di risposta true. La conversione dei messaggi in formato XML rende più facili le operazioni effettuate dai filtri e dai trasformatori, appoggiandosi a strumenti di programmazione come Java, JavaScript e E4X per la manipolazione dei messaggi. (Mirth Connect user Guide, 2015)

Sui trasformatori i messaggi vengono modificati e mappati attraverso una serie di variabili. La trasformazione dei messaggi prima del passaggio al connettore di destinazione può essere di varia natura (mediante Script Transformer o mediante XLST Transformer, ad esempio) ma

97

per l’obbiettivo di questa tesi si considera la trasformazione mediante un generatore di messaggi HL7 (su cui è riservata una trattazione a parte).

Infine sul connettore di destinazione vengono effettuate le connessioni con i sistemi esterni e trasmessi i dati si effettua la trasmissione del dato del messaggio verso il software di arrivo.

Si può certamente dire che l’ESB e il PDTA Manager siano entità separate ma interdipendenti: l’ESB risolve il problema di integrazione dei sistemi, mentre il PDTA Manager risolve il problema della modellazione e gestione del percorso, integrando dati e sistemi software differenti per mezzo dell’ESB stesso.

3.4 Il linguaggio HL7

Health Level Seven è uno protocollo di comunicazione che definisce di tutti gli standard per lo

scambio, la gestione, l’integrazione, la condivisione e il reperimento di dati sanitari in formato elettronico: in assistenza sanitaria in genere si hanno molti sistemi informatici diversi utilizzati, dai record di fatturazione al monitoraggio del paziente. Tutti questi sistemi devono interfacciarsi fra loro quando ricevono nuove informazioni, o quando desiderano recuperarne o condividerne, e HL7 permette tutte queste operazioni. (Rodrigues, 2010)

L’HL7 è stato sviluppato da una associazione no profit fondata nel 1987 in Pennsylvania e riconosciuta nel 1994 dall’American National Standards Institute (istituto Americano di Normalizzazione, un’organizzazione privata senza fini di lucro che definisce standard industriali per gli Stati Uniti e membro dell’ISO – Organizzazione Internazionale degli

Standard ) .

Lo standard si concentra sul livello applicativo, che corrisponde al settimo strato del modello OSI: il livello applicativo è un livello di astrazione che specifica i protocolli condivisi e

98

metodi di interfaccia usati dagli host in una rete di comunicazione. (HL7 internationals). L’astrazione del livello applicativo è utilizzato in entrambi i modelli standard di reti di computer: Internet Protocol Suite (TCP / IP) e il modello Open Systems Interconnection (modelloOSI).

Nel modello TCP / IP, il livello di applicazione contiene i protocolli di comunicazione e i metodi di interfaccia utilizzati nelle comunicazioni peer to peer attraverso l’Internet Protocol di una rete. Il livello di applicazione standardizza la comunicazione e dipende dai protocolli del layer sottostante (il transport layer) per stabilire canali di trasferimento dei dati.

Nel modello OSI, la definizione del livello di applicazione è più ristretto. Il modello OSI definisce il livello di applicazione come interfaccia utente responsabile della visualizzazione informazioni ricevute (al contrario, il modello TCP/IP non si occupa di tali dettagli). (Requirements for Internet Hosts – Communication Layers, 1989)

Le informazioni vengono trasmesse attraverso dei messaggi che risultano essere costituiti da un gruppo di segments (segmenti) in un certo ordine, riconoscibili mediante una triade di caratteri, il segment type, che ne identifica l’utilità.

I messaggi sono anzitutto identificabili mediante le tre lettere MSH che, nel primo segmento, identificano il tipo di messaggio: il tipo del messaggio (message type) determina a sua volta i tipi di segmenti previsti nel messaggio.

MSH|^~\&|MegaReg|XYZHospC|SuperOE|XYZImgCtr|20060529090131- 0500||ADT^A01^ADT_A01|01052901|P|2.5

EVN||200605290901||||200605290900

PID|||56782445^^^UAReg^PI||KLEINSAMPLE^BARRY^Q^JR||19620910|M||2028-

9^^HL70005^RA99113^^XYZ|260 GOODWIN CREST

DRIVE^^BIRMINGHAM^AL^35209^^M~NICKELL’S PICKLES^10000 W 100TH AVE^BIRMINGHAM^AL^35200^^O|||||||0105I30001^^^99DEF^AN PV1||I|W^389^1^UABH^^^^3||||12345^MORGAN^REX^J^^^MD^0010^UAMC^L||67890^GRAINGER^ LUCY^X^^^MD^0010^UAMC^L|MED|||||A0||13579^POTTER^SHERMAN^T^^^MD^0010^UAMC^L|||| |||||||||||||||||||||||200605290900 OBX|1|NM|^Body Height||1.80|m^Meter^ISO+|||||F OBX|2|NM|^Body Weight||79|kg^Kilogram^ISO+|||||F AL1|1||^ASPIRIN

DG1|1||786.50^CHEST PAIN, UNSPECIFIED^I9|||A

99

MSH è il segmento di intestazione, PID rappresenta l’identità del paziente (Il quinto campo nel segmento PID ad esempio rappresenta alcuni degli estremi del paziente, nell’ordine, cognome, nome, secondo nome, suffisso …), PV1 segnala la registrazione dell’identità del paziente per una visita ecc..

Si riporta una tabella con i primi segment type riportati nella documentazione ufficiale:

100

Documenti correlati