Indice 1 Introduzione 1 1.1 Le cliniche africane . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Considerazioni e specifiche . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Gli strumenti utilizzati . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Software per l’ambito sanitario 5 2.1 Software Gestionali: HIS - EMR . . . . . . . . . . . . . . . . . . . . . 7 2.2 Proposte Open - Source . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Care2X 2.3.1 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Problemi riscontrati . . . . . . . . . . . . . . . . . . . . . . . 12 Altri Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.1 FreeMed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4.2 GnuMed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.3 OpenMRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4.4 Open Infrastructure for Outcomes - OIO . . . . . . . . . . . . 17 2.4.5 OpenClinic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.6 OpenEMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.4.7 OpenHospital . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3 La scelta 21 3.1 3.2 Definizione dei criteri di sperimentazione ed analisi . . . . . . . . . . 21 3.1.1 Criteri tecnologici . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.1.2 Criteri Funzionali . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.1.3 Criteri di Usabilitá . . . . . . . . . . . . . . . . . . . . . . . . 27 Schema di valutazione . . . . . . . . . . . . . . . . . . . . . . . . . . 30 I 3.3 3.4 Sperimentazione ed Analisi sul software: risultati della valutazione . 3.3.1 Valutazione Care2X - HIS . . . . . . . . . . . . . . . . . . . 3.3.2 Valutazione OpenEMR - HIS . . . . . . . . . . . . . . . . . 3.3.3 Valutazione OpenHospital - HIS . . . . . . . . . . . . . . . . 3.3.4 Valutazione FreeMed - EMR . . . . . . . . . . . . . . . . . . 3.3.5 Valutazione GnuMed - EMR . . . . . . . . . . . . . . . . . . 3.3.6 Valutazione OpenMRS - EMR . . . . . . . . . . . . . . . . . 3.3.7 Valutazione OIO - Open Infrastructure for Outcomes - EMR 3.3.8 Valutazione OpenClinic - EMR . . . . . . . . . . . . . . . . Confronto dei risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 33 34 35 36 37 38 39 40 41 4 Conclusioni 45 4.1 La scelta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2 Proposta per lo sviluppo futuro . . . . . . . . . . . . . . . . . . . . . 46 A Script 49 B Configurazione sorgenti 54 B.1 Installazione del web server Apache da sorgenti . . . . . . . . . . . . 55 B.2 Configurazione sorgenti PHP 4.x . . . . . . . . . . . . . . . . . . . . 56 C Creazione distribuzione personalizzata 58 C.1 Prerequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 C.2 Personalizzare la distribuzione . . . . . . . . . . . . . . . . . . . . . . 59 D Immagini Care2X 62 E Immagini Altri Software E.1 FreeMed . . . . . . . . . . . . . . . . . . E.2 GnuMed . . . . . . . . . . . . . . . . . . E.3 OpenClinic . . . . . . . . . . . . . . . . E.4 OpenEMR . . . . . . . . . . . . . . . . . E.5 OpenMRS . . . . . . . . . . . . . . . . . E.6 OpenHospital . . . . . . . . . . . . . . . E.7 OIO - Open Infrastructure for Outcomes 70 70 74 76 79 82 85 89 II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elenco delle tabelle 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 Classificazione software sanitari . Elenco Software . . . . . . . . . . Prerequisiti installazione Care2X 1a Prova installazione Care2X . . 2a Prova installazione Care2X . . 3a Prova installazione Care2X . . 4a Prova installazione Care2X . . 5a Prova installazione Care2X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 10 13 13 14 14 14 15 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 3.10 3.11 Care2X: risultati della valutazione . . . . OpenEMR: risultati della valutazione . . OpenHospital: risultati della valutazione FreeMed: risultati della valutazione . . . GnuMed: risultati della valutazione . . . OpenMRS: risultati della valutazione . . OIO: risultati della valutazione . . . . . OpenClinic: risultati della valutazione . Totale risultati della valutazione . . . . . Totale risultati per l’Usabilitá . . . . . . Classifica finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 35 36 37 38 39 40 42 43 44 III . . . . . . . . . . . . . . . . . . . . . . . . Elenco delle figure 2.1 Debian-Med 1: home-page del progetto . . . . . . . . . . . . . . . . . 6 2.2 Debian-Med 2: home-page del progetto . . . . . . . . . . . . . . . . . 7 2.3 Debian-Med 3: home-page classe HIS . . . . . . . . . . . . . . . . . . 8 2.4 Debian-Med 4: home-page classe EMR . . . . . . . . . . . . . . . . . 9 2.5 Wikipedia: lista software sanitari . . . . . . . . . . . . . . . . . . . . 10 3.1 Tabella d’esempio per valutazione EMR 3.2 Tabella d’esempio per valutazione HIS . . . . . . . . . . . . . . . . . 31 3.3 Risultati della valutazione completa . . . . . . . . . . . . . . . . . . . 42 3.4 Risultati della valutazione, dettaglio usabilitá . . . . . . . . . . . . . 43 3.5 Risultati della valutazione, conclusioni . . . . . . . . . . . . . . . . . 44 . . . . . . . . . . . . . . . . 30 D.1 Care2X: download . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 D.2 Care2X: ced 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 D.3 Care2X: ced 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 D.4 Care2X: ced 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 D.5 Care2X: errore ced . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 D.6 Care2X: accetazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 D.7 Care2X: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 D.8 Care2X: sottosistema emr 1 . . . . . . . . . . . . . . . . . . . . . . . 66 D.9 Care2X: sottosistema emr 2 . . . . . . . . . . . . . . . . . . . . . . . 66 D.10 Care2X: home page amministratore . . . . . . . . . . . . . . . . . . . 67 D.11 Care2X: home page personalizzata . . . . . . . . . . . . . . . . . . . . 67 D.12 Care2X: nuovo paziente . . . . . . . . . . . . . . . . . . . . . . . . . . 68 D.13 Care2X: parametri 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 D.14 Care2X: parametri 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 IV E.1 FreeMed login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 E.2 FreeMed home utente 1 . . . . . . . . . . . . . . . . . . . . . . . . . . 71 E.3 FreeMed home utente 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 71 E.4 FreeMed ricerca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 E.5 FreeMed risultato ricerca . . . . . . . . . . . . . . . . . . . . . . . . . 72 E.6 FreeMed cartella clinica . . . . . . . . . . . . . . . . . . . . . . . . . 73 E.7 FreeMed amministrazione . . . . . . . . . . . . . . . . . . . . . . . . 73 E.8 GnuMed: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 E.9 GnuMed: finestra principale . . . . . . . . . . . . . . . . . . . . . . . 75 E.10 OpenClinic: pagina iniziale . . . . . . . . . . . . . . . . . . . . . . . . 76 E.11 OpenClinic: EMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 E.12 OpenClinic: ricerca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 E.13 OpenClinic: amministrazione 1 . . . . . . . . . . . . . . . . . . . . . 78 E.14 OpenClinic: amministrazione 2 . . . . . . . . . . . . . . . . . . . . . 78 E.15 OpenEMR: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 E.16 OpenEMR: EMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 E.17 OpenEMR: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 E.18 OpenEMR: pagina iniziale . . . . . . . . . . . . . . . . . . . . . . . . 81 E.19 OpenMRS: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 E.20 OpenMRS: ricerca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 E.21 OpenMRS: dizionario . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 E.22 OpenMRS: EMR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 E.23 OpenMRS: amministrazione . . . . . . . . . . . . . . . . . . . . . . . 84 E.24 OpenHospital: menú . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 E.25 OpenHospital 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 E.26 OpenHospital 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 E.27 OpenHospital 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 E.28 OIO: login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 E.29 OIO: pagina iniziale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 E.30 OIO: nuovo paziente . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 E.31 OIO: forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 E.32 OIO: errore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 E.33 OIO amministrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 V E.34 OIO: utenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 E.35 OIO: reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 E.36 OIO: dettaglio report . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 VI Capitolo 1 Introduzione Il lavoro presentato in questo elaborato é parte del progetto di collaborazione e sostegno a strutture cliniche sanitarie africane, voluto dal prof. Aldo Franco Dragoni dell’Universitá Politecnica delle Marche con la collaborazione dell’ASUR di Ancona. Il progetto ha come scopo la fornitura di sistemi hardware e software per sfruttare le risorse disponibili in queste realtá e completare la collaborazione preesistente con la facoltá di medicina della stessa facoltá. Questa parte del progetto si occupa di trovare un software gestionale che permetta di agevolare il normale svolgimento delle attivitá sanitarie, predisponendo un sistema per la raccolta e consultazione dei dati dei pazienti curati. Ovviamente essendo una situazione molto particolare, quella in cui ci si trova ad operare, vanno tenuti in considerazione diversi fattori prima di passare alla parte pratica, tra cui l’ambiente dove sono situate queste cliniche, le difficoltá che vengono quotidianamente affrontate e le particolari richieste. Tutto questo ha condotto alla stesura di un certo numero di specifiche, inscindibili da quelle tecniche, derivanti dall’approccio ingegneristico del problema. Innanzitutto si intende presentare brevemente quella che é la realtá in questione insieme alle richieste di chi opera sul campo, quelle che sono state le considerazioni scaturite in conseguenza dell’approccio con questa situazione e che sono state il filo conduttore di tutta l’analisi e sperimentazione descritte nei seguenti capitoli, in ultimo una descrizione degli strumenti e dell’ambiente utilizzato per svolgere il progetto. 1 1 – Introduzione 1.1 Le cliniche africane Le strutture che sono state contatatte ed oggetto di riflessione per studiare i requisiti e le caratteristiche minime necessarie al software, si trovano nello stato dello Zambia e sono tra le piú grandi presenti nel paese. Oltre alle sfide che vengono affrontate ogni giorno in ambito medico, si trovano a dover convivere con la scarsitá di personale e l’inadeguatezza di spazi e strumenti che hanno a disposizione, a fronte di un elevato numero di pazienti. Le normali procedure burocratiche passano in secondo piano e sono registrate solamente su carta, il che genera diversi tipi di difficoltá, basti pensare alla necessitá di recuperare informazioni su un utente che era stato curato a distanza di qualche mese, o peggio ancora di un anno. Un ulteriore aspetto che é stato fortemente sottolineato durante le conversazioni, riguarda l’analfabetismo informatico, nel senso che la semplicitá di utilizzo deve essere la prioritá in ogni valutazione, altrimenti gli strumenti che hanno a disposizione, ma non sono in grado di usare, rimarrebbero nell’attuale condizione. 1.2 Considerazioni e specifiche Date le premesse, si rende evidente come sia necessario un supporto informatico a queste realtá. Tenendo presenti le necessitá e le problematiche ambientali si é quindi giunti alla individuazione di alcune linee guida per la scelta dei progetti da analizzare e per la valutazione conseguente, che sono: • Open Source L’aspetto economico é di fondamentale importanza, al momento non é possibile investire risorse in ambito informatico perché altre sono le prioritá, tra cui i laboratori e le attrezzature. Il panorama Open Source offre un ampia varietá di soluzioni, alcune giá in uso e supportate dalle comunitá che possono rappresentare un’ottima alternativa, a costo zero, nei confronti di altri strumenti a pagamento; inoltre i sistemi operativi gratuiti, attualmente in circolazione, GNU/Linux in particolare, sono migliorati sensibilmente dal punto di vista della facilitá di utilizzo rendendo possibile il loro impiego senza alcuna difficoltá anche ad utenti inesperti. 2 1 – Introduzione • Facilitá di apprendimento Quest’aspetto non é da sottovalutare per due motivi su tutti, il primo, pratico, é che non si puó gravare ulteriormente il carico di lavoro di medici e personale imponendo un corso di formazione che andrebbe a togliere tempo impiegato con i pazienti. Il secondo aspetto, direttemente derivante, é che tale corso dovrebbe essere tenuto da chi ha l’incarico di portare ed installare il sistema in Africa, ció andrebbe ad aumentare notevolmente i costi. Per queste ragioni si cerca un sistema che abbia una buona comunitá alle spalle, per il supporto tecnico, ed una buona documentazione che faciliti l’apprendimento e l’utilizzo. • Semplicitá di messa in opera Come accennato per quanto riguarda l’apprendimento, non si deve dimenticare che i costi sono la principale difficoltá da affrontare, quindi un programma che necessiti di poche risorse e sia installabile in poco tempo é l’obiettivo cercato. Queste sono le specifiche che saranno ripetute piú volte durante la spiegazione delle diverse fasi di realizzazione del progetto, proprio a sottolineare quale sia la loro importanza e che hanno guidato tutte le scelte sostenute. 1.3 Gli strumenti utilizzati Gli strumenti utilizzati per affrontare questi argomenti sono stati gli stessi che si é pensato di portare in Africa, per sperimentare in prima persona quelle che potrebbero essere le difficoltá e cercare una soluzione preventiva. Il Sistema Operativo utilizzato é la distribuzione GNU/Linux Ubuntu-8.04.1-desktop-i386 nella configurazione di default, la stessa che é possibile scaricare dal sito della comunitá 1 . A conclusione del presente lavoro sará presentata una distribuzione preparata appositamente per la portabilitá in Africa, costruita partendo da questa appena menzionata. Particolari software utilizzati, complementari allo svolgimento di test ed esperimenti, sono stati il web server Apache (v.2.0), l’interprete del linguaggio 1 www.ubuntu.com 3 1 – Introduzione PHP ( ≥ v.4.4), i due principali DBMS 2 , disponibili gratuitamente: MySQL ( ≥ v.4.1) e POSTGRESQL ( ≥ v.7.9). Infine si é utilizzata una macchina virtuale attraverso l’applicazione qemu per poter provare immagini .iso di distribuzioni linux (principalmente knoppix) predisposte con i vari sistemi software studiati, distribuite attraverso i siti dei produttorimanutentori. Il vantaggio di questo prodotto é che senza mai riavviare il sistema si é in grado emulare un altro pc, con altra architettura hardware e quindi avere a disposizione una nuova macchina dove fare prove e test senza rischiare di causare danni e conflitti nel sistema originale, il tutto a scapito delle prestazioni, ovviamente, ridotte; in particolare il sistema utilizzato é stato: qemu, il software di virtualizzazione vero e proprio, qtemu, l’interfaccia grafica. 2 DataBase Management Systems 4 Capitolo 2 Software per l’ambito sanitario I software esistenti per l’utilizzo specifico in ambito sanitario sono divisibili in diverse categorie, a seconda di quale sia l’ambito previsto di utilizzo. In base a quella che é la classificazione proposta dal portale Debian-Med 1 questa suddivisione é abbastanza articolata e viene riportata nella tabella 2.1. Quelle classi su cui ci si é concentrati maggiormente per lo sviluppo del progetto, sono le due differenziazioni di gestionali alle quali, da questo momento in poi, si fará riferimento utilizzando gli acronimi: HIS 2 ed EMR 3 ; nel prossimo paragrafo verrá spiegato il perché e si affronterá la descrizione ed il confronto tra le due, quindi si proverá a chiarire se esiste effettivamente un’importante differenza tra le due e che cosa questo comporti al fine dello svolgimento della ricerca. 1 http://www.debian.org/devel/debian-med/ Sito del progetto Debian dedicato alla sanitá, che si propone di realizzare una distribuzione completa specifica per l’utilizzo in qualsiasi branca della medicina, dalla gestione ospedaliera alla ricerca, passando per la veterinaria. Nell’ambiente Open Source é una delle maggiori fonti di informazioni e novitá in tale ambito. 2 Hospital Information System 3 Electronic Medical Record 5 2 – Software per l’ambito sanitario Branca Gestionali per cartelle cliniche elettroniche (EMR) Gestionali per strutture sanitarie (HIS) Ricerca Medica Biologia Molecolare e Genetica Visione e Modifica di Immagini esami Odontoiatria Veterinaria Database Farmaceutici (medicine e droghe) Gestione Farmacie Fisioterapia Documentazione per la ricerca Altro Tabella 2.1. Classificazione dei software sanitari secondo il progetto Debian-Med Figura 2.1. Home-page del progetto Debian Med 6 2 – Software per l’ambito sanitario Figura 2.2. 2.1 Home-page del progetto Debian Med, elenco software sanitari open source Software Gestionali: HIS - EMR I software gestionali per l’ambito sanitario sono strumenti che permettono di organizzare e memorizzare informazioni riguardo pazienti e cure ma anche relative agli aspetti burocratici e statistici legati alle procedure amministrative, complementari allo svolgimento della professione medica. In questo panorama si collocano le famiglie di software che sono state introdotte in precedenza, gli HIS e gli EMR. A fronte della richiesta di aiuto e collaborazione lanciata da quanti lavorano nelle strutture africane, si é subito intuito che il primo passo per aumentare il grado di automazione dei procedimenti ospedalieri, dovesse riguardare il modo in cui vengono raccolti ed archiviati i dati relativi alle attivitá svolte, quindi un sistema gestionale é risultata la soluzione preferibile. Come giá detto in questo campo le prospettive sono molte e variegate, ora si intende presentare le principali differenze tra le due classi di software per poi passare alla presentazione delle possibili scelte trovate. La prima differenza, fondamentale, riguarda il fatto che un software della classe HIS si puó definire come un pacchetto 7 2 – Software per l’ambito sanitario di servizi tra cui un sottosistema EMR. Questo significa che un software di gestione ospedaliera (HIS) ovviamente al suo interno fornisce un insieme di servizi per i pazienti che viene chiamato cartella clinica elettronica, il quale realizza in tutto e per tutto un software di tipo EMR. Un’altra differenza riguarda il fatto che gli HIS prevedono una minore integrazione con altri software, hanno implementate all’interno molte funzioni puntando all’autosufficienza; gli EMR, dal canto loro, permettono di collegare ad ogni paziente dei documenti e file che peró non si occupano di gestire. Altre differenze risiedono nelle funzioni che mettono a disposizione, ma questo aspetto sará sottolineato in fase di analisi e sperimentazione (sez.3.1). Nel confronto tra le due classi, a livello generico, non si é riuscito a stabilire quale fosse la migliore soluzione, quale strada intraprendere, perché da un lato (HIS) i vantaggi rappresentati dalle numerose funzioni e completezza dei sistemi si scontra con la complessitá, mentre dall’altro (EMR) l’estrema semplicitá si scontra con la limitatezza degli strumenti a disposizione. Per questo si é deciso di percorrere parallelamente entrambe le strade, lasciando al termine dell’analisi e sperimentazione la scelta di quale fosse la migliore soluzione per l’eventuale installazione in Africa. Figura 2.3. Home-page della sezione HIS di Debian Med 8 2 – Software per l’ambito sanitario Figura 2.4. 2.2 Home-page della sezione EMR di Debian Med Proposte Open - Source Come si é detto (sez.1.2) lo studio é stato indirizzato verso il mondo del software Open Source, che in quest’ambito fornisce numerose soluzioni, alcune molto interessanti, che sono state prese in considerazione. Nella tabella 2.2 sono riportati tutti i software studiati, organizzati secondo le categorie precedentemente descritte. Nello stilare questa lista si é fatta una comparazione tra due fonti informative, presenti sul web, che contengono al loro interno un gran numero di proposte, ma tra progetti collegati a link non piú esistenti ed altri che comparivano solamente in una delle due fonti, si é scelto di procedere con quanti fossero appartenuti ad entrambe e che avessero un collegamento funzionante ad un proprio portale di riferimento. Queste due fonti sono il giá citato Debian-Med 4 (sez. 2) e la pagina wikipedia relativa all’ healthcare software 5 . 4 5 http://www.debian.org/devel/debian-med/ http://en.wikipedia.org/wiki/List of open source healthcare software 9 2 – Software per l’ambito sanitario Nel resto del capitolo, questi selezionati, verranno presentati singolarmente per chiarire quali sono le caratteristiche macroscopiche ed agevolare la comprensione delle schede di valutazione che sono presentate nella sezione 3.3. Software della classe EMR FreeMed GnuMed OIO OpenClinic OpenMRS Software della classe HIS Care2x OpenEMR OpenHospital Tabella 2.2. Elenco completo dei software analizzati, organizzati per classi di appartenenza Figura 2.5. Pagine web del portale wikipedia in cui sono elencati software sanitari Open Source 10 2 – Software per l’ambito sanitario 2.3 Care2X Il primo prodotto che é stato preso in considerazione é stato il Care2X, un software appartenente alla famiglia degli Hospital Information System, che era giá stato oggetto di studio presso l’azienda sanitaria di Ancona in previsione di un possibile utilizzo, in virtú di ció si é pensato, fin dall’inizio, che la risposta alla richiesta di sostegno dall’africa, fosse proprio questa. In realtá cosı́ non é stato dato che alcuni aspetti non si sono potuti trascurare nella valutazione. Il programma Care2X si presenta come un sistema integrato di gestione di servizi sanitari azzerando l’incompatibilitá tra i vari formati dei dati utilizzati dai software presenti attualmente nelle strutture e diminuendo la ridondanza dei dati grazie all’utilizzo di un unico database. É un progetto Open Source quindi il codice sorgente é disponibile e modificabile, anche se con qualche difficoltá, da chiunque, inoltre ha il supporto di una comunitá con piú di 100 membri, ma sembra tutto fermo ormai da tempo; é disponibile in 17 lingue, ed é per questo che la sua diffusione é a livello globale. Il Care2x permette di gestire quasi completamente una struttura sanitaria, dagli aspetti amministrativo-burocratici, stipendi e statistiche, alla programmazione degli interventi per il reparto di ortopedia, tanto per fare un esempio, in ogni caso esiste una versione dimostrativa, funzionante, raggiungibile tramite il sito web del progetto: http://www.care2x.org -> HIS -> Online Demo, oppure, http://www.care2x.com/foundry/?lang=it. Una volta che si é preso confidenza con il sistema peró ci si accorge che non é cosı́ semplice da utilizzare come presentato nella documentazione ufficiale e, provare ad installarlo in un sistema relativamente recente, é quasi impossibile. Come si é giá detto il software in questione era giá stato provato presso l’azienda sanitaria di Ancona nel 2006 e i problemi riscontrati dal personale sanitario, coinvolto nell’utilizzo, sono stati un ottimo punto di partenza per concentrare l’attenzione, durante la fase di analisi, su aspetti molto pratici che sono risultati i piú importanti al fine di determinare un vincitore. 11 2 – Software per l’ambito sanitario 2.3.1 Problemi riscontrati I problemi riscontrati utilizzando questo programma si possono dividere in tre gruppi, il primo problema riguarda il sottosistema su cui si installa il software vero e proprio, si tratta, in altre parole, del server web su cui va eseguito il Care2X. Questo server é molto datato e non piú disponibile nei siti ufficiali di distribuzione in quanto sono necessari il pre-processore di linguaggio PHP versione ≤ 4.3.4, ed il DBMS MySQL versione ≤ 4.0.x insieme ad Apache utilizzabile in qualsiasi versione. Il guaio é che sia i sorgenti che i pacchetti pre-compilati per le diverse distribuzioni GNU/Linux, non sono piú supportati dalla comunitá, per quel che concerne il PHP, né dalla Sun Microsystems, proprietaria del marchio MySQL, né sono reperibili nei canali tradizionali come i siti dei progetti o i repository delle distribuzioni, il che equivale a dire che ormai sono obsoleti ed inutilizzabili. Il secondo problema é strettamente legato al precedente e forse ne spiega il motivo dato che ci si riferisce alla comunitá di sviluppo del programma bloccata da oltre un anno, per quanto riguarda l’aggiornamento della release stabile disponibile per il download, ben oltre per quanto riguarda le news pubblicate sul sito. In questa situazione é forte la sensazione che ci sia qualche problema all’interno, dato che le tappe dello sviluppo non sono state raggiunte definitivamente ed in molti si attendono un upgrade ad un ambiente LAMP piú aggiornato. In ultimo si presentano le osservazioni fatte utilizzando il prodotto in prima persona. Delle difficoltá in fase di installazione si é giá accennato e si rimanda alle tabelle successive (dalla tabella 2.8 in poi) che contengono una sintesi delle 5 prove svolte con i relativi dettagli. Le altre difficoltá sono legate all’utilizzo, come si puó vedere negli screenshots raccolti nell’appendice D, si riferiscono alla possibilitá di personalizzare l’interfaccia grafica del prodotto e alla usabilitá. La personalizzazione possibile é male organizzata perché in ogni sezione si ha la possibilitá di cambiare dei parametri, non c’é un unico strumento (vedi shots: D.2, D.7, D.13, D.14) per le modifiche che sono comunque vincolate al template classico originale; per modificare il template si deve possedere un ottima conoscenza del linguaggio PHP oltre che del CSS, dato che i template e gli stili sono gestiti da un sottosistema che prende il nome di Smarty Template Engine 6 . A livello grafico si é giunti alla stessa conclusione che 6 www.smarty.net É un progetto sviluppato in php integrabile in qualsiasi portale, realizzato con lo stesso linguaggio, 12 2 – Software per l’ambito sanitario aveva spinto l’azienda sanitaria di Ancona ad abbandonare il progetto di utilizzo, data la complessitá del prodotto l’interfaccia grafica é inadeguata, oscura, disomogenea e complicata, in un’unica parola inutilizzabile. A fronte di quanto detto si é stabilito che il progetto Care2X fosse temporaneamente accantonato in attesa di un aggiornamento o, comunque, di un confronto con le altre proposte ritrovate in rete per cercare innanzitutto di portare aiuto in Africa dove una soluzione simile sarebbe risultata eccessiva, complicata ed inadeguata. Care2X installazioni, problemi e soluzioni Prerequisiti Apache 1.x, PHP (4.0.4p11 − 4.3.4), MySQL (3.2x−4.0.x), Realizzato uno script per la shell che verifica l’installazione e funzionamento di questo ambiente, vedi appendice A. Tabella 2.3. Sistema Errori Soluzione Risultato Prerequisiti all’installazione del software Care2X 1a installazione Kubuntu 8.04 amd64 desktop. L’ambiente LAMP viene installato dai repository attraverso il Synaptic Package manager. I repository ufficiali della distro contengono il LAMP aggiornato all’ultima versione, non adatto al Care2X Installazione, nell’ordine, di PHP4 e MySQL4, dai repository di Ubuntu 6.10, a seguire Apache 1.3.34 dai repository Ubuntu 7.04. Il software funziona correttamente Tabella 2.4. 1a Prova di installazione del software Care2X allo scopo di separare il livello codice dal livello grafico semplificando il lavoro ad entrambe le parti. 13 2 – Software per l’ambito sanitario Sistema Errori Soluzione Risultato 2a installazione Kubuntu 8.04 amd64 desktop. Installato, sul sistema della prima prova, il DBMS PostgreSQL da sorgenti. La routine automatina di installazione del Care2X non porta a compimento l’installazione con PostgreS. Si passa all’utilizzo della distribuzione Kubuntu 8.04 i386 desktop. Saltuari errori durante il salvataggio dei permessi avanzati per utenti. Con un riavvio del server il problema scompare (bug). Tabella 2.5. Sistema Errori Soluzione Risultato 3a installazione Kubuntu 8.04 i386 desktop. Installazione dell’ambiente LAMP da sorgenti alla versione richiesta, tranne che per il MySQL, sorgenti introvabili, utilizzata versione 4.1 La routine automatica del Care2X si interrompe durante la verifica. Utilizzati sorgenti recuperati da un server non ufficiale alla versione 4.0.13. Come per la prova precedente. Tabella 2.6. Sistema Errori Risultato 2a Prova di installazione del software Care2X 3a Prova di installazione del software Care2X 4a installazione Kubuntu 8.04 i386 desktop. Installazione da sorgenti dell’ambiente Apache 2, PHP 4, MySQL4.0.13 Nessuno in fase d’installazione. Come per la prova precedente. Tabella 2.7. 4a Prova di installazione del software Care2X 14 2 – Software per l’ambito sanitario Sistema Errori Risultato 5a installazione Kubuntu 8.04 i386 desktop. Installazione da sorgenti dell’ambiente Apache 2, PHP 4, PostgreSQL 8.0 Nessuno in fase d’installazione. Come per la prova precedente. Tabella 2.8. 2.4 5a Prova di installazione del software Care2X Altri Software I software rimanenti sono presentati in maniera meno dettagliata rispetto al precedente, si parte da una presentazione del progetto, descrivendo alcune delle caratteristiche principali e sottolineando, se ci sono, degli aspetti di notevole importanza; fino ad una breve descrizione dell’installazione evidenziando quali sono gli aspetti piú significativi. Come per il precedente, tutte le immagini sono state raccolte nell’appendice E. 2.4.1 FreeMed http://www.freemedsoftware.org/ FreeMed é un software appartenente alla classe EMR, specificamente progettato per gestire una cartella clinica individuale e le procedure sanitarie collegate ad essa. Attualmente é alla versione stable: 0.8.4 e la comunitá sembra sia attiva ed al lavoro verso una nuova versione, come si puó vedere dalle statistiche generate da Sourceforge.net dove é ospitato il download. Il progetto é sviluppato nei linguaggi JavaScript, Perl e PHP, mentre per il database il sistema preferito é il MySQL. La documentazione presente sul sito é decisamente scarsa ed indirizzata soltanto agli utilizzatori, quindi le specifiche tecniche vanno recuperate guardando i sorgenti o contattando direttamente i manutentori. Per quanto riguarda l’installazione si deve dire che esiste un live cd, distribuito sempre attraverso Sourceforge.net, attraverso il quale é possibile valutare potenzialitá e 15 2 – Software per l’ambito sanitario difetti del software, in ogni caso l’installazione non é complicata dato che puó essere installato su un ambiente LAMP di ultima generazione e predispone un file di configurazione, scritto in PHP, con il quale vengono installati il database e configurata la connessione. In pratica una volta scompattati i sorgenti all’interno della cartella pubblica del nostro server, si procede a modificare il file settings.php nella directory freemed/lib/. Una volta settati i parametri per la connessione al database ed il path del progetto, come descritto quı́ di seguito, si deve aggiornare il file di configurazione del PHP, cambiando i limiti di memoria da 8MB portandoli a 64MB o 200MB. Modifica delle seguenti righe nel file settings.php: define define define define define define 2.4.2 (’INSTALLATION’, "Stock FreeMED Install"); // installation name (’DB_HOST’, "localhost"); // database (SQL) host location (’DB_NAME’, "freemed"); // database name (’DB_USER’, "root"); // SQL server username (’DB_PASSWORD’, ""); // SQL server password (’PHYSICAL_LOCATION’, "/var/www/htdocs/freemed"); GnuMed http://wiki.gnumed.de/bin/view/Gnumed GNUMed é un’applicazione Open Source per la gestione di dati medici, appartiene alla classe EMR. L’applicazione nasce in Germania, é scritta in Python e distribuita con licenza Gpl. Lo stato del progetto é abbastanza avanzato, anche se il software é ben lontano dalla maturitá e numerose funzioni interessanti aspettano uno sviluppatore. L’architettura prevede un vero database e per il momento supporta PostgreSQL. Il software in questione fa parte del progetto Savannah 7 della GNU. I software per entrare a far parte di questo progetto devono rispondere a molti requisiti perché i visitatori possano trovare prodotti liberi e di qualitá. Lo stesso Savannah offre anche un servizio di assistenza e raccoglie le segnalazioni di bug. GNUMed puó girare su diversi sistemi operativi (GNU/Linux, Apple’s MacOSX e MS Windows) e l’installazione é molto semplice anche per utenti Linux perché é disponibile un pacchetto .deb nei repository supportati dalla comunitá, quelli che 7 http://savannah.gnu.org 16 2 – Software per l’ambito sanitario sono etichettati come universe, contenente il client che puó essere provato e fatto funzionare collegandosi ad un database pubblico, completamente funzionante. Per quanto riguarda il lato server, a differenza dei sistemi web based, non ha bisogno di un’applicazione specifica, ma soltanto del database per la condivisione dei dati; l’installazione di quest’ultimo é anch’essa molto semplice dato che nel sito del progetto sono disponibili script per l’installazione per le diverse distribuzioni Linux, oltre alle istruzioni per svolgere tutto manualmente. 2.4.3 OpenMRS http://openmrs.org/wiki/OpenMRS OpenMRS é un software Open-Source della classe EMR sviluppato da una comunitá che ha il principale intento di sostenere i paesi in via di sviluppo dal punto di vista informatico sanitario, specialmente dove HIV/AIDS, tubercolosi e malaria affliggono l’esistenza di milioni di persone. Il programma é realizzato utilizzando il linguaggio Java e si appoggia su un database MySQL, fa largo uso di form caricabili all’interno del sistema stesso ma questi sono realizzati con il software MS Office InfoPath. Sul sito del progetto, molto curato tranne che per la documentazione che risulta ancora in fase di sviluppo, si trovano tantissime informazioni riguardanti il progetto, la comunitá ed anche dati tecnici per sviluppatori e tester. Per quel che riguarda l’installazione tutta la documentazione fa riferimento a sistemi MS Windows, dato che prevede l’integrazione con i prodotti MS Office. Utilizza un server Tomcat, derivato da Apache, per eseguire il codice Java da server ed é predisposto un file .sql per l’installazione del database direttamente da query browser MySQL o qualsiasi altra interfaccia. 2.4.4 Open Infrastructure for Outcomes - OIO http://http://www.txoutcome.org/ Quest’applicazione web appartiene alla categoria EMR ed é pensata per permettere a quanti non conoscono i linguaggi di programmazione e formattazione del testo, di creare record e documenti flessibili e portabili riguardanti dati di pazienti e ricerche. Il sistema infatti si sviluppa a partire da due componenti fondamentali, il server OIO e la libreria OIO. Il server é altamente flessibile ed ha la funzione di gestore 17 2 – Software per l’ambito sanitario delle informazioni-documenti, indipendentemente dal tipo delle stesse, mentre la libreria é lo strumento dove queste vengono salvate, un contenitore di metadati, come viene definito dagli stessi sviluppatori, per facilitare lo scambio e la disponibilitá dei contenuti. La comunitá alle spalle sembra importante, perché coinvolge universitá ed altri gruppi Open Source, come si legge nella presentazione del prodotto, ed anche la documentazione é molto dettagliata, tranne nelle specifiche tecniche. Quello che lascia un po’ riflettere é che l’ultimo aggiornamento alla versione stabile risale al 2005 e non ci sono discussioni aperte di recente sul forum, probabilmente perché il prodotto ha raggiunto una maturitá tale da ritenere gli sviluppatori soddisfatti. Per quanto riguarda l’installazione del sistema completo si puó dire che la documentazione a supporto sia dettagliata tanto da renderla possibile anche a chi non dovesse essere esperto di sistemi server, il punto in questione é che viene utilizzata un’applicazione, dal nome Zope 8 , che realizza il server OIO e si occupa della comunicazione ed interazione con il database PostgreSQL, soltanto che la configurazione ottimale richiede numerosi passaggi manuali, come giá detto spiegati nel dettaglio all’interno della documentazione; altrimenti é possibile utilizzare una distribuzione live basata su Knoppix 9 che ha al proprio interno una routine per l’installazione del sistema completo. 2.4.5 OpenClinic http://openclinic.sourceforge.net/ OpenClinic é un software della classe EMR molto semplice ed essenziale, pensato per essere un gestore di informazioni ed infatti le sue funzioni non vanno oltre questi scopi. La comunitá alle spalle sembra inesistente, a parte lo sviluppatore, e l’ultima versione completa, resa disponibile, risale al dicembre 2004. L’interesse suscitato da questo prodotto riguarda la semplicitá con cui é realizzata la grafica, come si puó vedere dagli screenshots riportati nell’appendice E, anche se alcune soluzioni non sono sembrate le piú adatte, ma per questo si rimanda alla sezione di analisi (sez.3.3.8). 8 9 http://www.zope.org/WhatIsZope http://www.knoppix.org/ 18 2 – Software per l’ambito sanitario L’installazione é molto semplice e supportata da una breve guida, comunque sufficiente, presente sul sito del progetto. Una volta installato Apache web-server ed il PHP con i moduli per il collegamento al DBMS, MySQL, va creato il database vero e proprio e quindi le tabelle usate da OpenClinic, ma per quest’ultimo passo della procedura é presente uno script, applicazione che automatizza la procedura. A questo punto non resta che settare i giusti permessi di lettura e scrittura per i file del programma all’interno della cartella pubblica di Apache e collegarsi tramite browser. 2.4.6 OpenEMR http://www.oemr.org// Il software OpenEMR appartiene alla classe HIS, anche se non permette di gestire nel dettaglio una struttura sanitaria, nel senso che non possiede una funzione di organizzazione dei turni del personale o i dettagli dei reparti in cui si suddivide, ma é molto di piú di un software per la gestione di cartelle cliniche elettroniche. In particolare si puó dire che oltre alla gestione dei dati personali e clinici ha un sistema di organizzazione degli appuntamenti, di gestione delle prescrizioni e procedure come possono essere esami e test, oltre a questo, che esula dallo scopo sanitario, ha anche la possibilitá di gestire la fatturazione, secondo il sistema anglosassone, ed i dati relativi. La comunitá alle spalle é viva, e l’ultimo aggiornamento al sistema completo risale ad agosto scorso. Per quanto riguarda i dettagli tecnici e l’installazione, si é notato che i documenti prodotti sul web, all’interno del sito stesso o comunque collegati ad esso, sono molti ed esaustivi in merito alle procedure di installazione, mentre i dettagli tecnici specifici, per esempio riguardo il database, non sono molto approfonditi. Ritornando all’installazione, vengono messe a disposizione degli utenti delle guide passo-passo relative alla distribuzione GNU/Linux adottata, che si rivelano lunghe ed incomprensibili, ma ottime e che conducono al perfetto set-up del server. 2.4.7 OpenHospital http://www.informaticisenzafrontiere.org/viewprog.php?id=1 Il presente programma é un’applicazione Java che viene inserita nella categoria 19 2 – Software per l’ambito sanitario EMR, é sviluppato da un’associazione no-profit, italiana, chiamata “informatici senza frontiere”, che, con la collaborazione di enti statali e coinvolgendo le scuole, realizza progetti di sostegno e sviluppo dedicati ad istituti sanitari, scuole, associazioni, carceri. . . ovunque nel mondo, dove ce ne sia il bisogno. Il programma é molto semplice ed essendo prodotto in Java ha il vantaggio di servirsi di un server solo per alloggiare il database, MySQL in questo caso, e non ha bisogno di installazioni e risoluzione di dipendenze; d’altro canto peró la grafica swing 10 e la necessitá di dover portare fisicamente su ogni macchina gli aggiornamenti o la soluzione di problemi, ne fanno una soluzione scomoda. 10 Librerie Java che realizzano l’interfaccia grafica. 20 Capitolo 3 La scelta A fronte della varietá delle alternative presentate nel paragrafo precedente (sez. 2.2) si rende evidente la necessitá di affrontare una scelta oggettiva su quale sia la migliore soluzione per far fronte alle esigenze africane. Come si é diffusamente spiegato nell’introduzione l’aspetto di maggior interesse, riguardo la scelta, é l’usabilitá, ma nella sperimentazione ed analisi si é seguita una procedura standardizzata in cui si é tenuto conto di diversi fattori. Nelle seguenti sezioni si presentano le procedure e gli schemi utilizzati fino al compimento della valutazione. 3.1 Definizione dei criteri di sperimentazione ed analisi Il procedimento che si é seguito per valutare i diversi prodotti scelti (pensato ed organizzato con la supervisione del tutor aziendale) é stato strutturato in due fasi, la prima dedicata alla conoscenza con il prodotto - sperimentazione e la seconda volta all’ analisi - valutazione. La fase di conoscenza - sperimentazione é stata svolta in maniera graduale, nel senso che si é partiti studiando la documentazione e leggendo le recensioni trovate all’interno dei canali informativi sul web1 , passando poi all’utilizzo fino a giungere alla sperimentazione, una prova di funzionamento reale “simulata: cioé si é finto di gestire un struttura clinica, compiendo le normali procedure mediche e burocratiche, 1 www.wikipedia.com, www.debian.org/debian-med 21 3 – La scelta testando il funzionamento di ogni singola parte, provando l’efficenza e la sicurezza. Con questo sistema si é ottenuta una migliore e profonda conoscenza delle reali capacitá e limiti di ogni prodotto. La fase di analisi - valutazione é stata complicata dal fatto che la maggior parte delle proposte non si differenziano, né dal punto di vista tecnico né da quello grafico e di utilizzo. In ogni modo grazie alla stesura di uno schema di valutazione rigoroso si é semplificato molto il processo e si sono ottenuti risultati soddisfacenti, che rispecchiano la realtá dei fatti. Di seguito sono elencati e spiegati i criteri utilizzati nella valutazione, per ognuno é specificato a quale classe é stato associato, nella compilazione dei voti: ció sottolinea la differenza che intercorre tra le due classi, spiegata nel capitolo 2. Gli stessi criteri sono stati organizzati in un documento OpenOffice - Calc 2 per effettuare la valutazione ed i calcoli conclusivi presentati (sez. 3.4) sotto forma di grafici. Il punteggio associato ad ogni singola voce della scheda di valutazione va da un minimo di 0 ad un massimo di 3 punti. 3.1.1 Criteri tecnologici Valutazione delle scelte di progettazione, programmazione e realizzazione. In questa sezione si analizza che tipo di software é stato prodotto e quali paradigmi sono stati seguiti, quale struttura é stata data e quali piattaforme é possibile utilizzare, privilegiando l’Open Source e le grandi comunitá alla base del progetto. In questo senso prodotti che sfruttano software proprietari per il loro funzionamento sono stati scartati a priori o penalizzati nel punteggio. Open-Source e community Vengono presi in esame solo i software il cui codice non é proprietario, la valutazione prende in considerazione anche l’attivitá e vitalitá della comunitá di sviluppo alle spalle. Valutato per le classi: HIS – EMR. 2 L’equivalente Open Source del piú noto Microsoft Excel 22 3 – La scelta Paradigma di progetto Viene valutato se il software funziona in locale o se risiede su un server web, se ha una logica di progetto client-server, se lo si utilizza con il browser web, soluzione preferita, o possiede un’applicazione client. Punteggio: 1→Software locale; 2→Paradigma client-server che non utilizza il browser web; 3→Paradigma client-server che utilizza il browser web. Valutato per le classi: HIS – EMR. Database Vengono valutati diversi aspetti, dal numero delle tabelle presenti in relazione alle funzioni messe a disposizione, al sistema di gestione utilizzato. Punteggio: 0→Database non piú supportato dalle comunitá o societá (ad esempio il MySQL versione ≤ 4.0.x); 1-3→In base al numero di tabelle e ridondanza delle informazioni salvate. Valutato per le classi: HIS – EMR. Installazione Viene valutata la facilitá di installazione del sistema completo, seguendo la documentazione ufficilale messa a disposizione dai manutentori del progetto. Punteggio: 1→scarsa documentazione, elevato numero di dipendenze da altri software complicazione elevata della procedura; 2→complessitá della procedura ma buona documentazione; 3→ottima documentazione ed elevata facilitá, oppure disponibilitá di pacchetti precompilati. Valutato per le classi: HIS – EMR. Personalizzazione Viene valutata la facilitá con cui é possibile personalizzare il programma sia da un punto di vista grafico che funzionale. 23 3 – La scelta Punteggio: 1→Scarsa e relativa solo ad alcuni aspetti tipo possibilitá di scelta dei template ma nessuno disponibile oppure possibilitá di scegliere quali funzioni rendere visibili o meno; 2→Personalizzazione disponibile per diverse funzioni ma non completa; 3→Possibilitá di personalizzare tutto il sistema. Valutato per le classi: HIS – EMR. Integrazione Viene valutato se il programma prevede l’integrazione con altri software, la facilitá con cui si realizzano queste funzioni e con che tipo di software. Punteggio: 0-1→Nulla o solo per file di sistema; 2-3→Permette upload di file esterni, differenza in base all’organizzazione degli stessi. Valutato per le classi: HIS – EMR. Sicurezza Viene valutato se il software utilizza delle tecnologie per rendere sicuri i dati e le comunicazioni, ad esempio password criptate e protocolli di comunicazione sicuri. Punteggio: 1→Nulla; 2→Password criptate; 3→Password criptate e protocollo SSL. Valutato per le classi: HIS – EMR. Riservatezza Viene valutato se il software rispetta eventuali normative sulla privacy o se le informazioni sono chiare ed accessibili a chiunque. 24 3 – La scelta Punteggio: 0-1→Accesso con password e database visibile completamente; 2→Accesso con password e permessi avanzati di accesso alle sezioni, ma completa visibilitá del database; 3→Accesso con password, permessi avanzati e visibilitá dei soli dati di interesse. Valutato per le classi: HIS – EMR. 3.1.2 Criteri Funzionali Analisi della varietá di funzioni implementate ed organizzazione delle stesse. In questa sezione si cerca di capire se il software fornisce le funzioni di base per gestire le relazioni medico-paziente e la storia sanitaria degli individui. Gestione struttura Viene valutato in che modo e quanto dettagliatamente é possibile rappresentare la struttura dell’ospedale o clinica all’interno del sistema software. Punteggio: 0-2→Funzionalitá limitata; 3→Funzionalitá supportata in pieno. Valutato per la classe: HIS. Gestione accessi Viene valutato se l’accesso al sistema é protetto oppure no, quindi se é possibile tenere traccia di quanti interagiscono con esso. Punteggio: 0→Funzionalitá non supportata; 3→Funzionalitá supportata in pieno. Valutato per le classi: HIS – EMR. 25 3 – La scelta Gestione privilegi Viene valutato se ed in che modo vengono distribuite le credenziali di accesso alle varie sezioni del software, in particolare se viene fatta una distinzione degli utenti attraverso permessi di lettura, scrittura e modifica, articolata secondo l’organizzazione della struttura sanitaria rappresentata. Punteggio: 0→Funzionalitá non supportata; 3→Funzionalitá supportata in pieno. Valutato per la classe: HIS. Database medico Viene valutato se ed in che modo é implementato un database medico, concernente le valutazioni, le diagnosi e le terapie. In questa sezione é stato attribuito il massimo punteggio a quei software che utilizzano la codifica ICD 3 , in quanto essendo riconosciuta a livello internazionale ed essendo completamente gratuito e disponibile é sembrata la scelta piú ovvia e consona. Punteggio: 0→Funzionalitá non supportata; 1-2→Funzionalitá supportata in parte con ultilizzo di altre soluzioni tipo tabella testuale nel database; 3→Funzionalitá supportata in pieno ed utilizzando un database standardizzato come l’ICD. Valutato per le classi: HIS – EMR. Database farmaceutico Viene valutato se é disponibile un database farmaceutico, in questo caso non esistendo uno standard internazionale sono stati privilegiati quei sistemi che sono provvisti di uno giá parzialmente compilato. 3 La classificazione ICD (dell’inglese International Classification of Diseases)é la classificazione internazionale delle malattie e dei problemi correlati, stilata dall’Organizzazione Mondiale della Sanitá (OMS). 26 3 – La scelta Punteggio: 0→Funzionalitá non supportata; 2→Funzionalitá supportata in parte con ultilizzo di altre soluzioni tipo tabella testuale nel database; 3→Funzionalitá supportata in pieno. Valutato per le classi: HIS – EMR. Statistica Vengono valutate le varietá di funzioni che generano report ed in che modo sono implementate, se con procedura guidata o con query SQL al database. Punteggio: 0→Funzioni di estrazione report non predisposte; 2→Funzioni predisposte in parte o con errori; 3→Funzioni predisposte in maniera completa. Valutato per le classi: HIS – EMR. Cartella clinica elettronica Viene valutato il metodo di memorizzazione delle informazioni sanitarie, la loro organizzazione e facilitá di lettura. É la parte centrale del software, la varietá di funzioni e la semplicitá di utilizzo sono fondamentali perché un sistema sia adottabile in ambienti “particolari”. Ovviamente si prende in considerazione questa caratteristica solo per la classe HIS dato che rappresenta il sottosistema EMR di questi software (vedi sez. 2.1); per la classe EMR vale la considerazione che l’analisi nel suo complesso e tutte le valutazioni tengono conto di quanto detto riguardo la semplicitá. Punteggio: 1→Incompleta; 2→Non completa o di difficile utilizzo; 3→Completa e di utilizzo immediato. Valutato per la classe: HIS. 3.1.3 Criteri di Usabilitá Verifica della semplicitá di utilizzo e della documentazione esistente. 27 3 – La scelta In questa sezione si valuta come sono state organizzate, nella user-interface, le funzioni predisposte, privilegiando le semplicitá di raggiungimento dello scopo rispetto alla qualitá grafica in senso stretto. Accessibilitá Viene valutata l’organizzazione delle funzioni, se siano facilmente raggiungibili, se esistano percorsi univoci per raggiungere uno scopo o se si generi confusione nell’utilizzatore a fronte di una distribuzione scriteriata di menú e pulsanti. Punteggio: 1→Funzioni raggiungibili attraverso diversi percorsi ed organizzate in molti menú; 2→Molte funzioni organizzate in maniera confusa; 3→Tutte le funzioni sono raggiungibili univocamente tramite il menú. Valutato per le classi: HIS – EMR. User Interface Viene valutata la presentazione di dati e funzioni, in particolare sono stati privilegiati sistemi che presentano un unico menú ed i dati sono organizzati in maniera chiara e leggibile, a scapito di colori ed immagini che non sono significativi allo scopo di quest’analisi. Punteggio: 1→Disomogeneitá nella rappresentazione degli elementi grafici e schemi di colore contrastanti; 2→Alcune scelte non condivisibili nella scelta degli elementi grafici; 3→Interfaccia grafica semplice, funzionale e classica. Valutato per le classi: HIS – EMR. Documentazione Viene valutata la completezza e chiarezza delle guide relative ai programmi, specialmente per quanto riguarda installazione e messa a punto iniziale. 28 3 – La scelta Punteggio: 0-1→Inesistente, scarsa o in fase di sviluppo; 2→Completa ma con alcune lacune; 3→Completa ed efficace. Valutato per le classi: HIS – EMR. 29 3 – La scelta 3.2 Schema di valutazione Le immagini 3.1 e 3.2 rappresentano lo schema base del documento OpenOffice Calc utilizzato per effettuare la valutazione, si noti il differente numero di record nella sezione FUNZIONALI, come precisato nella introduzione alla definizione dei criteri (sez. 3.1). Figura 3.1. Schema della tabella per la valutazione dei software appartenenti alla classe EMR 30 3 – La scelta Figura 3.2. Schema della tabella per la valutazione dei software appartenenti alla classe HIS 31 3 – La scelta 3.3 Sperimentazione ed Analisi sul software: risultati della valutazione Lo schema di valutazione appena presentato si é utilizzato per valutare tutti i software elencati nella sezione 2.2, per poter confrontare i punteggi ottenuti e scegliere quello che maggiormente risponde alle specifiche presentate nell’introduzione. Di seguito sono elencati in forma di tabelle le valutazioni ed i commenti che poi verranno confrontati nella sezione seguente 3.4. 32 3 – La scelta 3.3.1 Valutazione Care2X - HIS Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 1 Paradigmi di progetto 2 Database 1 Installazione 2 Personalizzazione 1 Integrazione Sicurezza 1 2 Riservatezza 2 Aggiornamenti non costanti e significativi, ultima release risalente al 2007/12/01. Paradigma client-server basato sul web, sviluppato utilizzando codice php versione 4. Complesso, ridondante per alcuni aspetti e carente in altri, implementato con MySQL 4.0.x, non piú supportato dalla Sun Microsystem. La complessitá risiede nel fatto che necessitá di software obsoleti. Permette di scegliere quali funzioni visualizzare e cosa nascondere, ma modificare la smarty template, programmata in php, per modificare i temi e la grafica risulta difficile. Nulla. Non utilizza protocolli di comunicazione sicuri, soltanto password criptate. Gestisce accessi privilegiati ma informazioni visibili a tutti. FUNZIONALI Gestione struttura Gestione accessi Gestione privilegi Database medico 3 3 3 3 Database farmaceutico Statistica 2 1 Cartella clinica elettronica 2 USABILITÁ Accessibilitá 1 User Interface 1 Documentazione 2 TOTALE 33 MEDIA 1,83 Tabella 3.1. Funzionalitá supportata in pieno. Funzionalitá supportata in pieno. Funzionalitá supportata in pieno. Utilizza il database ICD 10, dando la possibilitá di scegliere la lingua da installare. Predisposto ma da compilare. Non mette a disposizione funzioni, unica soluzione é interagire direttamente col database. Completa ma di difficile utilizzo. Le funzioni possono essere raggiunte seguendo diversi percorsi. Non c’é uniformitá di rappresentazione grafica tra le varie sezioni. Dettagliata ma non esaustiva. Care2X: risultati della valutazione 33 3 – La scelta 3.3.2 Valutazione OpenEMR - HIS Criteri TECNOLOGICI Open-Source e Community Paradigmi di progetto Giudizio Dettagli 2 3 Database Installazione 2 2 Personalizzazione 1 Integrazione 2 Sicurezza Riservatezza 3 1 Ristretta comunitá di sviluppatori. Paradigma client-server basato sul web, implementato in php. Ben strutturato, utilizza il MySQL DBMS. Non semplice ma dispone di una buona documentazione a supporto. Possibile solo a livello di codice, utilizza la smarty template del php. Permette di fare l’upload sul server di file relativi ai pazienti che possono poi essere scaricati ed utilizzati nella macchina client. Possibilitá di integrazione del protocollo SSL. Gestisce gli accessi riservati ma non gestisce in alcun modo la privacy. FUNZIONALI Gestione struttura 2 Gestione accessi Gestione privilegi 3 1 Database medico 1 Database farmaceutico Statistica 1 3 Cartella clinica elettronica 2 USABILITÁ Accessibilitá 2 User Interface Documentazione 1 2 TOTALE 34 MEDIA 1,89 Tabella 3.2. Funzionalitá supportata in parte perché permette di definire le diverse sedi della struttura ma l’organizzazione interna va descritta in senso lato, dato che alcuni parametri vanno ripetuti (indirizzo, telefono . . . ). Funzionalitá supportata in pieno. Gestisce solo la differenza tra utente privilegiato (amministratore) e non (medico, infermiere o impiegato, dati inseribili tra le note). Da compilare attraverso delle form, prevede la possibilitá di inserire i relativi codici della classificazione ICD. Utilizza lo stesso db medico compilato dall’utente. Permette di stampare statistiche per un singolo individuo o di creare report generici attraverso delle form predisposte. Completa ma di difficile utilizzo. Il menú é di difficile comprensione ma le funzioni sono tutte facilmente raggiungibili tramite lo stesso. La grafica risulta confusa e di difficile comprensione. Dettagliata ma non esaustiva. OpenEMR: risultati della valutazione 34 3 – La scelta 3.3.3 Valutazione OpenHospital - HIS Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 3 Paradigmi di progetto 2 Database Installazione 2 3 Personalizzazione 1 Integrazione 0 Sicurezza 0 Riservatezza 0 Sviluppato dalla organizzazione no-profit informatici senza frontiere in collaborazione con enti pubblici ed un istituto di istruzione superiore italiano. Paradigma client - server che sfrutta un’apllicazione Java come client remoto. Essenziale, manca la documentazione a riguardo. Semplice, sono disponibili le classi Java o i file binari per il client, sul server viene caricato soltanto il db. Non sono disponibili funzioni per modificare la visualizzazione dei dati o l’utilizzo del sistema, l’unica possibilitá é di modificare i sorgenti. Non permette l’upload di file esterni e non utilizza altri software per aumentare le proprie funzionalitá. Non gestisce gli accessi privilegiati ne é presente documentazione rigurdante l’implementazione di protocolli di sicurezza. Non gestisce alcun tipo di privacy. FUNZIONALI Gestione struttura 1 Gestione accessi Gestione privilegi Database medico 0 0 1 Database farmaceutico Statistica 1 2 Cartella clinica elettronica 2 USABILITÁ Accessibilitá 3 User Interface 2 Documentazione 2 TOTALE 25 MEDIA 1,39 Tabella 3.3. Permette di definire nel db quali sono i reparti ma non si riflette in una differenziazione delle funzioni e della struttura del software. Funzionalitá non implementata. Funzionalitá non implementata. Va inserito manualmente, composto di campi di testo, probabilmente é possibile inserire la codifica ICD ma manca totalmente la documentazione a riguardo. Come per quello medico. La funzione statistica mette a disposizione diversi report preimpostati. Molto semplice e con poche funzionalitá ma di utilizzo immediato. Le funzioni sono abbastanza articolate all’interno del menú che peró é ben organizzato e di facile utilizzo. Utilizza finestre multiple che rendono l’utilizzo complicato ed i dati sono presentati in tabelle molto scarne. In fase di sviluppo, presenta solo una descrizione delle funzioni. OpenHospital: risultati della valutazione 35 3 – La scelta 3.3.4 Valutazione FreeMed - EMR Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 2 Paradigmi di progetto 3 Database 2 Installazione 2 Personalizzazione 3 Integrazione 2 Sicurezza 2 Riservatezza 1 Ultima versione pubblicata a maggio del 2007, comunitá di modeste dimensioni. Paradigma client - server basato sul web, sviluppato utilizzando javascript, perl e php. Manca la documentazione sul sito del progetto, essenziale. Esiste un pacchetto .deb, ma manca la documentazione. Permette di personalizzare la visualizzazione delle funzioni e caratteristiche del programma agendo direttamente sulle tabelle generate in automatico. Permette di fare l’upload sul server di file per i pazienti che possono essere scaricati e visualizzati dal client. Password criptate ma non c’é documentazione su altre tecnologie di sicurezza implementate. Non implementa alcun tipo di riservatezza dei dati, visibili a chiunque. FUNZIONALI Gestione accessi Database medico Database farmaceutico Statistica 3 3 3 3 Funzionalitá supportata in pieno. Funzionalitá supportata in pieno. Funzionalitá supportata in pieno. Mette a disposizione numerose funzioni per creare report, sia sul singolo paziente che generiche. USABILITÁ Accessibilitá 3 User Interface 2,5 Documentazione 1 Le sezioni del software sono tutte raggiungibili dal menú superiore, le funzioni sono poi organizzate per tabella che viene generata. Molto intuitiva ma essendo molte le funzioni e le informazioni presentate, in alcune parti del sistema, la lettura risulta complicata. Decisamente scarsa ed insufficiente. TOTALE 35,5 MEDIA 2,37 Tabella 3.4. FreeMed: risultati della valutazione 36 3 – La scelta 3.3.5 Valutazione GnuMed - EMR Criteri TECNOLOGICI Open-Source e Community Paradigmi di progetto Giudizio Dettagli 3 3 Database Installazione 3 3 Personalizzazione Integrazione 1 3 Sicurezza 2 Riservatezza 1 Progetto appartenente alla distribuzione Debian. Paradigma client - server che utilizza una interfaccia grafica basata sulle librerie dello Gnome desktop enviroment. Utilizza il PostgreSQL, essenziale. Pacchetto .deb disponibile per diverse distribuzioni GNU/Linux, installabile con qualsiasi package manager, per installare il server é disponibile uno script per la shell sul sito del progetto. Necessita la conoscenza del linguaggio Python. Permette l’upload di file relativi ai pazienti, che possono essere scaricati e visualizzati dal client, utilizzando software esterni al programma.. Non utilizza protocolli di comunicazione sicuri, soltanto password criptate. Gestisce accessi privilegiati ma informazioni visibili a tutti. FUNZIONALI Gestione accessi Database medico 3 0 Database farmaceutico Statistica 0 2 USABILITÁ Accessibilitá 3 User Interface 3 Documentazione 3 TOTALE 33 MEDIA 2,2 Tabella 3.5. Funzionalitá supportata in pieno. Non disponibile,diagnosi e valutazioni inseribili con campo di testo. Come per quello medico. É disponibile una funzione per eseguire query al database, alcune sono preimpostate. Le funzioni sono organizzate in maniera semplice, diretta e di immediata comprensione. L’interfaccia grafica é essenziale e le informazioni sono presentate in maniera chiara. All’interno del programma é disponibile un browser per visualizzare il manuale utente in formato html, completo, dettaglaito e sempre disponibile. GnuMed: risultati della valutazione 37 3 – La scelta 3.3.6 Valutazione OpenMRS - EMR Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 2 Paradigmi di progetto 3 Database 2 Installazione Personalizzazione 3 3 Integrazione 1 Sicurezza Riservatezza 3 1 Il client va utilizzato su sistema MS Windows perché prevede l’integrazione con la suite MS Office. Paradigma client - server basato sul web, sviluppato in Java, necessita quindi di un server Tomcat. Essenziale ma persone ed utenti sono raccolti in un’unica anagrafica, usa il MySQL DBMS. Documentazione dettagliata. Nella sezione amministratore sono disponibili numerose funzioni per la personalizzazione. Utilizza il software MS InfoPath della suite MS Office. Possibilitá di utilizzo del protocollo SSL. Nessun tipo di privacy, deriva dalla logica del progetto di creare una comunitá per lo scambio di informazioni riguardanti i malati di AIDS. FUNZIONALI Gestione accessi Database medico Database farmaceutico Statistica 3 1 2 1 Funzionalitá supportata in pieno. Utilizza un dizionario interno da compilare. Utilizza lo stesso dizionario medico. Altamente difficile creare un report personalizzato, usa una descrizione XML e codice Java per interagire con il db. USABILITÁ Accessibilitá 2 User Interface Documentazione 2 2 Le funzioni sono diverse ma non sono semplicemente raggiungibili. Sono utilizzati solo link, non esistono bottoni. Buona ma ancora in fase di sviluppo. TOTALE 30 MEDIA 2 Tabella 3.6. OpenMRS: risultati della valutazione 38 3 – La scelta 3.3.7 Valutazione OIO - Open Infrastructure for Outcomes - EMR Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 3 Paradigmi di progetto 2 Database 1 Installazione 1 Personalizzazione 2 Integrazione 1 Sicurezza Riservatezza 3 2 Comunitá importante, alla quale partecipano universitá ed altre comunitá come OpenHealt.com. Paradigma client - server basato sul web, é implementato con php ed utilizza un server Zope per gestire i moduli di cui é composto. Permette di scegliere quale utilizzare ma manca la documentazione a riguardo. Complicata, necessita di vari software a supporto e la documentazione é essenziale. Disponibile in varie lingue, possibilitá di creare form personalizzate, possibilitá di personalizzare i moduli caricati anche se questo richiede una notevole conoscenza del server Zope alla base. Non offre funzioni di upload sul server, utilizza invece file XML per descrivere le form, questi ultimi invece sono caricabili. Utilizza il protocollo SSL e password criptate. Gestisce accessi privilegiati e permessi avanzati per accesso ai moduli del programma, ma non é implementata alcun tipo di privacy. FUNZIONALI Gestione accessi Database medico 3 0 Database farmaceutico Statistica 0 2 USABILITÁ Accessibilitá 2,5 User Interface 2 Documentazione 3 TOTALE 27,5 MEDIA 1,83 Tabella 3.7. Funzionalitá supportata in pieno. Non presente, le informazioni sono salvate come testo. Come per quello medico. Possibilitá di composizione query con procedura guidata. Le funzioni, non molte, sono tutte presenti nel menú orizzontale, facilmente leggibili e raggiungibili. L’interfaccia utente utilizza dei colori molto contrastati che facilitano l’enfatizzazione ma la presentazione dei dati é di difficile lettura. Molto buona la parte relativa all’utilizzo del prodotto, piú scarsa quella tecnica. OIO: risultati della valutazione 39 3 – La scelta 3.3.8 Valutazione OpenClinic - EMR Criteri TECNOLOGICI Open-Source e Community Giudizio Dettagli 0 Paradigmi di progetto 2 Database 1 Installazione 3 Personalizzazione 1 Integrazione 1 Sicurezza Riservatezza 1 1 Ultima versione pubblicata datata 2004, progetto con un’unico sviluppatore, comunitá inesistente. Paradigma client - server basato sul web, sviluppato utilizzando codice php versione 4. Utilizza MySQL 4.0.x non piú supportato dalla Sun Microsystem. Il software é essenziale quindi l’installazione é semplice e veloce, documentazione efficace a supporto. Possibilitá di scelta tra temi preimpostati o di scrivere il proprio. Niente a riguardo di funzioni o report. Permette di fare l’upload sul server di documenti relativi ad un paziente. Password criptate. Accessi riservati ma dati visibili a tutti gli utilizzatori. FUNZIONALI Gestione accessi Database medico 3 0 Database farmaceutico Statistica 0 0 USABILITÁ Accessibilitá 2 User Interface 2 Documentazione 1 TOTALE 18 MEDIA 1,2 Tabella 3.8. Funzionalitá supportata in pieno. Non predisposto nel db, qualunque diagnosi o terapia viene inserita e salvata come testo. Come per il db medico. Non esistono funzioni a riguardo. Le funzioni implementate, poche, sono organizzate in maniera non ottimale. Non esistono bottoni, ogni funzione va attivata tramite link a parole o frasi, grafica essenziale come tutto il progetto. Scarsa, ottimo il documento relativo all’installazione, manca totalmente la descrizione del db, manca la descrizione delle funzionalitá implementate. OpenClinic: risultati della valutazione 40 3 – La scelta 3.4 Confronto dei risultati Al termine dell’analisi si é affrontato il confronto dei risultati per giungere alla scelta della migliore tra le soluzione valutate. In realtá, durante tutto il periodo di studio e sperimentazione dei software, si sono messe in relazione le singole caratteristiche tra diversi prodotti e si é stesa la valutazione tenendo conto di quelle che erano le differenze di realizzazione, ma anche avendo ben chiaro quello che si stava cercando. Tutto questo si é tradotto in una valutazione su due livelli, il primo che si definisce livello generico, e prende in considerazione la graduatoria risultante dal totale dei punteggi ottenuti nella valutazione; il secondo livello, definito livello specifico, si riferisce alla graduatoria stilata prendendo in considerazione soltanto i punteggi ottenuti nelle 3 domande conclusive del test, sull’usabilitá. Si é optato per questa scelta nel momento in cui ci si é trovati di fronte risutati, a livello generico, molto omogenei, in cui nessun software potesse essere scelto per la superioritá dimostrata; in questo modo si é tenuta in maggior considerazione la parte “pubblica, come si presenta ogni software analizzato, perché, non esistendo grandi differenze a livello di progetto e tecnologia, si é preferito privilegiare la facilitá di apprendimento ed utilizzo. Nel grafico 3.3 relativo alla tabella 3.9, sono elencati i punteggi totalizzati dai singoli prodotti analizzati, evidenziando la classe di appartenenza. Si noti la presenza di un punteggio percentuale, calcolato sul massimo ottenibile per la specifica classe: in questo modo si é ottenuto un criterio di paragone, indipendente dalla famiglia, per i risultati e per la compilazione della graduatoria finale. 41 3 – La scelta Nome Totale Media OpenEMR Care2x OpenHospital 34 pt. 33 pt. 25 pt. 1,89 pt. 1,83 pt. 1,39 pt. FreeMed GnuMed OpenMRS OIO OpenClinic 35,5 pt. 33 pt. 30 pt. 27,5 pt. 18 pt. 2,37 pt. 2,2 pt. 2 pt. 1,83 pt. 1,2 pt. Tabella 3.9. Percentuale Posizione HIS – max: 54 pt. 62,96 % 4 61,11 % 5 46,3 % 7 EMR – max: 45 pt. 78,89 % 1 73,33 % 2 66,67 % 3 61,11 % 5 40 % 8 Totale dei punteggi ottenuti nella valutazione, dettaglio per classi Figura 3.3. Grafico dei risultati della valutazione completa Nel grafico 3.4 relativo alla tabella 3.10 sono raccolti e confrontati i punteggi relativi alla sezione USABILITÁ dello schema di valutazione. 42 3 – La scelta Nome OpenEMR Care2x OpenHospital FreeMed GnuMed OpenMRS OIO OpenClinic Tabella 3.10. Figura 3.4. Accessibilitá 2 pt. 1 pt. 3 pt. 3 pt. 3 pt. 2 pt. 2,5 pt. 2 pt. U.I. 1 pt. 1 pt. 2 pt. 2,5 pt. 3 pt. 2 pt. 2 pt. 2 pt. Doc. 2 pt. 2 pt. 2 pt. 1 pt. 3 pt. 2 pt. 3 pt. 1 pt. Totale 5 pt. 4 pt. 7 pt. 7,5 pt. 9 pt. 6 pt. 7,5 pt. 5 pt. Posizione 6 8 3 4 1 5 2 6 Totale dei punteggi ottenuti nella sola sezione Usabilitá. Grafico dei risultati relativi alla sola sezione Usabilitá Nel grafico 3.5 relativo alla tabella 3.11 e disegnato in maniera inversamente proporzionale, sono rappresentate le classifiche relative ai risultati precedenti (3.9 e 3.10) e la classifica definitiva con la quale si é scelto il software piú idoneo allo scopo. 43 3 – La scelta Nome OpenEMR Care2x OpenHospital FreeMed GnuMed OpenMRS OIO OpenClinic Tabella 3.11. Rank 1 4 5 7 1 2 3 5 8 Rank 2 6 8 3 4 1 5 2 6 Somma 10 13 10 5 3 8 7 14 Classifica 5 7 5 2 1 4 3 8 Calcolo della classifica definitiva dalle graduatorie intermedie Figura 3.5. Grafico dei risultati conclusivi Si rimanda al capitolo seguente per i dettagli della scelta. 44 Capitolo 4 Conclusioni 4.1 La scelta Nel capitolo precedente si é giunti a stabilire quale tra i software analizzati fosse il migliore per affrontare il successivo passo del sostegno a strutture sanitarie africane. Innanzitutto si devono precisare alcune scelte che hanno condotto a queste conclusioni. Giá si é parlato riguardo il confronto tra software appartenenti a due classi distinte della famiglia dei gestionali (vedi sezione 2.1), ora é necessario spiegare perché ne é stato preferito uno della classe EMR che potrebbe sembrare incompleto e dalle funzionalitá ridotte. A tal proposito bisogna sottolineare ancora una volta quello che é il fine ultimo per cui si é svolto questo studio, ovvero l’aiuto a persone che lavorano in situazioni svantaggiate, che non possiedono una elevata conoscenza della tecnologia oggi disponibile e soprattutto che hanno altre prioritá rispetto a quest’ultima. A fronte di ció risulta evidente come la classe EMR, per le proprie caratteristiche, risponda all’esigenza di semplicitá e facilitá di apprendimento che sono necessarie e sono state sottolineate piú volte durante i contatti instaurati tra la facoltá, nella persona del Prof. Dragoni, ed il personale che lavora sul campo. Inoltre si é immaginato uno scenario in cui questo sia il primo passo di una collaborazione volta alla realizzazione di un sistema ancora piú avanzato e ricco di funzioni. In questo progetto, presentato nella successiva sezione 4.2, il software GnuMed rappresenta il sistema di gestione delle relazioni medico-paziente, che si 45 4 – Conclusioni andrebbe ad affiancare ad una suite di altri software dedicati alla gestione degli altri servizi medico-clinici. I vantaggi sarebbero notevoli perché il collegamento tra i software sarebbe realizzato esclusivamente da un sistema di gestione di comunicazioni e scambio dati, permettendo una configurazione di server distribuito e l’indipendenza dei servizi offerti. In ultimo si vuole sottolineare un aspetto forse scontato ma molto rilevante, il denaro. Si pensi a quale sia la portata del progetto: viaggi e soggiorni in Africa di personale tecnico e predisposizione di tutto l’hardware necessario alla realizzazione di un sistema software distribuito, ma anche manutenzione e risoluzione dei problemi. É evidente come il software GnuMed sia risultato la scelta piú ovvia data la sua semplicitá di installazione, di predisposizione del lato server e per la grande comunitá alle spalle che ne garantisce sostegno e sviluppo nel tempo. Tutti aspetti non di secondaria importanza quando giá le difficoltá geografiche e logistiche impongono un notevole dispendio di tempo, risorse ed energie. Al fine di facilitare ulteriormente la fase di installazione e predisposizione iniziale del sistema si é realizzata una guida per preparare una distribuzione GNU/Linux ad hoc, nella quale si é provveduto ad installare il software in questione ed il relativo sistema server. I dettagli e la guida seguita per la realizzazione sono raccolti nell’Appendice C. 4.2 Proposta per lo sviluppo futuro Durante lo studio dei criteri di valutazione ed analisi é apparso evidente come un sistema software in abito clinico, o piú semplicemente medico, abbia la necessitá di essere distribuito, affidabile ed in tempo reale. Queste caratteristiche si sono poi venute a riassumere nel concetto di sistema event-driven. Con questo termine si intende un paradigma di progetto per un sistema di comunicazione, basato su logica client-server, che interagisca con una suite di software, i servizi offerti dal sistema completo, occupandosi della gestione di relazioni e scambio dati tra i componenti, in cui ogni evento costituisce l’interruttore di avvio per l’aggiornamento immediato di tutto il sistema. Si consideri ad esempio una piccola clinica che utilizza alcuni software scollegati 46 4 – Conclusioni tra loro: uno per l’anagrafica e gestione degli appuntamenti, uno per le operazioni economico-burocratiche ed infine, un altro per la visione di referti ed esami come radiografie o tac. In questo modo oltre a dover imparare ad utilizzare tre diversi software, con tutte le difficoltá connesse, nel caso in cui si dovessero passare dei dati da un programma all’altro, considerando la piena compatibilitá tra standard e formati, scenario abbastanza improbabile di per se, soltanto il tempo di attesa, ad esempio per il trasferimento di un documento, costituisce tempo impiegato in maniera non proficua, con il rischio di perdersi nella ridondanza dell’informazione. In un sistema ad eventi, come si é immaginato, tutti questi software rappresentano i servizi offerti e ad uno strato inferiore si trova il sistema di gestione delle comunicazioni ed interazioni tra i servizi stessi, il tutto accessibile attraverso una interfaccia grafica web based. Considerando ancora l’esempio precedente della clinica, si puó pensare che nel momento in cui un utilizzatore, attraverso un client, inserisce un paziente, immediatamente ad un altro client arriva il messaggio e si aggiorna l’elenco dei pazienti, per esempio nel servizio che gestisce i pagamenti piuttosto che nel servizio che gestisce i laboratori, senza che chi sta di fronte abbia chiesto un aggiornamento. In questo scenario i primi problemi eliminati sono la ridondanza di informazioni, un unico database per tutti i servizi, in primo luogo e di conseguenza il problema di compatiblitá e portabilitá dei formati di memorizzazione. Un ulteriore vantaggio é dovuto al fatto che il lato server potrebbe essere distribuito su diverse macchine e che ogni servizio é realmente indipendente dagli altri quindi, la manutenzione risulta semplificata e con disagio pressoché nullo: nel caso un software vada aggiornato o, addirittura sostituito, basterebbe interrompere solo quel servizio oppure predisporre un nuovo hardware per limitare al massimo l’interruzione stessa. Il problema fondamentale é che un sistema del genere non sembra ancora esistere ma gli sforzi di altri studenti della facoltá si stanno rivolgendo a realizzare tale progetto in cui lo GnuMed potrebbe integrarsi alla perfezione. Infatti ci si é resi conto, durante la ricerca di software adatti allo scopo di questo progetto, che attualmente esistono tutti gli strumenti di base per iniziare lo sviluppo di una suite event-driven, il che non si limita all’esistenza di un panorama molto vasto di programmi specifici per quasi ogni disciplina medica, ma all’esistenza di uno standard per le comunicazioni e lo scambio di messaggi in ambito clinico. Questo protocollo, denominato HL7, 47 4 – Conclusioni é il punto di partenza per l’idea appena esposta, infatti é la standardizzazione di qualsiasi possibile evento-messaggio generabile in ambito sanitario, comprensivo di protocollo di scambio ed incapsulamento, in ultimo esiste anche un software che implementa un gestore di comunicazioni basato su HL7, dal nome Mirth, molto embrionale e lontano da quello che si é esposto, ma comunque un punto di partenza importante per pensare di portare a termine un progetto cosı́ ambizioso. In ultimo si vuole sottolineare come le realtá africane in oggetto siano vergini, cioé prive di preconcetti e pregiudizi, in ambito di software sanitari e sarebbe il terreno adatto per l’installazione di un sistema cosı́ innovativo ed avanzato, libero da vincoli (si pensi alle licenze) e completamente personalizzabile. In quest’ottica si pone il lavoro presentato, lo GnuMed é risultato il miglior punto di partenza, disponibile attualmente, nel panorama Open Source, completamente compatibile con uno sviluppo futuro nella direzione event-driven. 48 Appendice A Script Script per la verifica dei prerequisiti di sistema necessari all’installazione di Care2x. #! /bin/bash ## Rossi Maurizio 2008-07-24 [email protected] ## This script is intended to search for software needed by care2x to run. ## The hardware used to do this script is an ASUS F5SL intel core 2 duo T5500, ## the OS is a GNU/Linux Kubuntu 8.04 amd64 "Hardy Heron" with kernel 2.6.24. ############################ ## Section 1 ## ## Variable definition ## ############################ ## Array for needed packages dip=([1]=apache [2]=apache-common [3]=apache2-utils [4]=libapache-mod-php4 [5]=php4 [6]=php4-gd [7]=php4-imap [8]=php4-mcal [9]=php4-mysql [10]=mysql-client-4.1 [11]=mysql-server-4.1 [12]=mysql-common) ## Log file saved in the current directory LOG="log_conf-care2x.txt" ## Flag: TRUE if all the packages are presents (default) flag=true 49 A – Script ## Error Codes and messages ## 23 -> one or more packages are not found in the system ## 24 -> one or more packages found in the system are not yet installed or configured ## 25 -> one or more packages are updated on the wrong version ERR_PACK_NOT_FOUND=23 err_pack_not_fnd_str="One ore more packages are not present in /var/lib/dpkg/status... \n\t...more details in log file: $LOG" ERR_PACK_NOT_INST=24 err_pack_not_inst_str="One or more packages present in /var/lib/dpkg/status are not yet installed or wrong configured...\n\t...more details in log file: $LOG" ERR_PACK_WRONG_VER=25 err_pack_wrong_ver_str="One or more packages are updated on the wrong version... \n\t...more details in log file: $LOG" # Redirects stdandard error output in log file within other information { echo -e "\nConfigure4care2x-0.2\nstart:" >> $LOG date >> $LOG echo -e "\n" >> $LOG ########################################################### ## Section 2 ## ## Searching for packages listed in /var/lib/dpkg/status ## ########################################################### for i in ${dip[@]} do echo "searching for $i package..." if dpkg-query -l $i 1> /dev/null # with no output use: dpkg-query -l $i &> /dev/null then echo -e "\t$i ...found" else echo -e "\tERROR $i ...not found" flag=false fi echo #blank line in log file done ## When a package is not found in the directory the script exit with error code 23 if !($flag) 50 A – Script then echo -e $err_pack_not_fnd_str exit $ERR_PACK_NOT_FOUND fi ############################## ## Section 3 ## ## Verifing packages status ## ############################## for i in ${dip[@]} do echo "verifing package $i status..." if dpkg-query -s $i | grep installed 1> /dev/null then echo -e "\t$i ...installed" else echo -e "\tERROR ...$i not installed" flag=false fi echo #blank line in log file done ## When a package is not installed the script exit with error code 24 if !($flag) then echo -e $err_pack_not_inst_str exit $ERR_PACK_NOT_INST fi ############################## ## Section 4 ## ## Verifing package version ## ############################## # Apache # Care2x needs the 1.3.XX branch ap_v1=$(dpkg-query -s apache | grep Version | sed -e s/Version:\ // -e s/\-[0-9]*\.[0-9]*// -e s/[\.][0-9]*// -e s/[\.][0-9]*//) ap_v2=$(dpkg-query -s apache | grep Version | sed -e s/Version:\ // -e s/\-[0-9]*\.[0-9]*// -e s/^[0-9]*[\.]// -e s/[\.][0-9]*//) ap_v3=$(dpkg-query -s apache | grep Version | sed -e s/Version:\ // 51 A – Script -e s/\-[0-9]*\.[0-9]*// -e s/^[0-9]*[\.]// -e s/^[0-9]*[\.]//) if [ $ap_v1 -eq 1 ] then if [ $ap_v2 -eq 3 ] then echo "apache version ...ok" elif [ $ap_v2 -lt 3 ] then echo "apache version ...ok" else echo "apache wrong version" flag=false fi else echo "apache wrong version" flag=false fi ## If apache version is wrong the script exit with error code 25 if !($flag) then echo -e $err_pack_wrong_ver_str exit $ERR_PACK_WRONG_VER fi echo #blank line # MYSQL # Care2x needs the 4.1.XX branch mq_v=$(mysqladmin version | grep ’[Ss]erver [vV]ersion’ | sed -e ’s/[\-][0-9a-zA-Z]*\.[0-9a-zA-Z]//g’ -e ’s/[a-zA-Z]*[\ \t]//g’ -e ’s/\-[a-zA-Z\_0-9]*//g’) mq_v1=$(mysqladmin version | grep ’[Ss]erver [vV]ersion’ | sed -e ’s/[\-][0-9a-zA-Z]*\.[0-9a-zA-Z]//g’ -e ’s/[a-zA-Z]*[\ \t]//g’ -e ’s/\-[a-zA-Z\_0-9]*//g’ -e ’s/[\.][0-9]*//g’ -e ’s/[\.][0-9]*//g’) mq_v2=$(mysqladmin version | grep ’[Ss]erver [vV]ersion’ | sed -e ’s/[\-][0-9a-zA-Z]*\.[0-9a-zA-Z]//g’ -e ’s/[a-zA-Z]*[\ \t]//g’ -e ’s/\-[a-zA-Z\_0-9]*//g’ -e ’s/^[0-9]*[\.]//g’ -e ’s/[\.][0-9]*//g’) mq_v3=$(mysqladmin version | grep ’[Ss]erver [vV]ersion’ | sed -e ’s/[\-][0-9a-zA-Z]*\.[0-9a-zA-Z]//g’ -e ’s/[a-zA-Z]*[\ \t]//g’ -e ’s/\-[a-zA-Z\_0-9]*//g’ -e ’s/^[0-9]*[\.]//g’ -e ’s/^[0-9]*[\.]//g’) #echo $mq_v $mq_v1 $mq_v2 $mq_v3 # This script consider the release 4.1.15 as the last mysql4 version 52 A – Script if [ $mq_v1 -eq 4 ] then if [ $mq_v2 -eq 1 ] then echo "mysql version ...ok" elif [ $mq_v2 -lt 1 ] then echo "mysql version ...ok" else echo "mysql wrong version" flag=false fi elif [ $mq_v1 -eq 3 ] then if [ $mq_v2 -gt 19 ] then echo "mysql_version ...ok" else echo "mysql wrong version" fi else echo "mysql wrong version" flag=false fi ## If mysql version is wrong the script exit with error code 25 if !($flag) then echo -e $err_pack_wrong_ver_str exit $ERR_PACK_WRONG_VER fi echo #blank line ## In this section is not made the search for php4 version ## because it was preceding verified the package presence. } 2> $LOG ############# ## Exit ok ## ############# echo echo date exit -e "\nConfigure completed with no errors...\tREADY TO INSTALL CARE2X" -e "\n\tNO ERROR FOUND IN THE SYSTEM\n\tend:" >> $LOG >> $LOG 0 ######### ## End ## ######### 53 Appendice B Configurazione sorgenti In questa appendice si descrive la procedura seguita per l’installazione del web-server Apache e del pre-processore di linguaggio PHP, seguita durante la fase preliminare dell’installazione del software Care2X, si tralascia la descrizione della procedura relativa all’installazione dei DBMS MySQL e PostgreSQL, dato che si sono seguite le istruzioni all’interno dei pacchetti contenenti i sorgenti, mentre per i primi due si sono duvute apportare delle aggiunte alla configurazione di default. L’installazione di software attraverso la compilazione dei sorgenti é una procedura complessa ed a volte lunga, che prevede la conoscenza delle dipendenze e dei prerequisiti di ogni software da risolvere in anticipo, oltre alla predisposizione degli strumenti necessari alla compilazione. In un sistema Ubuntu spesso non vengono installati di default i pacchetti necessari a questo scopo e quindi bisogna provvedere manualmente, in questo caso si é utilizzato il software Synaptic package manager per installare i seguenti pacchetti: build-essential, meta pacchetto che installa una serie di strumenti tra cui compilatori e librerie. linux-headers-generic, meta pacchetto che installa gli headers del kernel installato, utilizzati per compilare quei programmi che necessitano di funzioni eseguite direttamente da moduli del kernel, o che vanno ad aumentarne le funzionalitá. 54 B – Configurazione sorgenti B.1 Installazione del web server Apache da sorgenti Per installare il web server Apache dai sorgenti anziché con i metodi tradizionali si devono scaricare gli stessi e poi provvedere alla configurazione, questa é la procedura seguita: si é scaricato l’archivio compresso dal sito del progetto: http://httpd.apache.org/download.cgi in seguito da linea di comando, si entra nella directory dove é stato salvato il file e si lanciano i seguenti comandi: \$ tar -xzf httpd-x.tar.gz \$ cd httpd-x \$ sudo ./configure --prefix=/usr/local/apache2 --enable-so da notare la presenza della parola chiave sudo necessaria perché il programma viene installato all’interno della cartella /usr/local/ al di fuori della home utente. In secondo luogo la presenza del path dove effettuare l’installazione --prefix=. . . . In ultimo l’opzione necessaria alla compilazione, come moduli, delle estenzioni disponibili per il web-server, che permette anche di abilitare il caricamento dinamico delle stesse. Una volta conclusa, a buon fine, la configurazione si esegue la compilazione ed installazione con i comandi concatenati: \$ sudo make && sudo make install A questo punto il web server si avvia digitando il comando: \$ sudo /usr/local/apache2/bin/apachectl start La cartella dove vanno inserite le pagine da pubblicare é la: /usr/local/apache2/htdocs/ . 55 B – Configurazione sorgenti B.2 Configurazione sorgenti PHP 4.x La procedura di installazione del PHP si é rivelata piú complessa rispetto a tutte le altre, per le quali é stato sufficiente consultare il documento install.txt distribuito insieme ai sorgenti e seguire la procedura di default. Per questo componente invece é stato necessario confrontare le dipendenze del software care2X con la guida d’installazione dei sorgenti, per provvedere alla configurazione di tutte le estensioni necessarie alla compilazione dei moduli, non standard, ma necessari al software. In questo senso é servito installare tutti i pacchetti headers delle librerie elencate in seguito nel comando di configurazione. Una volta compiuto questo passo si é proceduto alla compilazione. La procedura seguita é stata la seguente: Download dei sorgenti dal sito: http://www.php.net/downloads.php, estrazione dell’archivio e configurazione: \$ cd ./Download/ \$ tar xzf php-x.tar.gz \$ cd php-x/ \$./configure --with-apxs2=/usr/bin/apxs2 --with-mysql --with-pgsql --with-gd --with-mcal --with-mcrypt --with-pear --enable-calendar --enable-mbstring --with-jpeg-dir=/usr/lib/libjpeg.so --with-png-dir=/usr/lib/libpng.so --with-zlib-dir=/usr/lib/zlibrary/ui/zlib-gtk.so --with-xpm-dir=/usr/lib/libXpm.so \$ make \$ sudo make install \$ sudo cp php.ini-dist /usr/local/lib/php.ini Una volta compilati ed installati i sorgenti, l’ultima riga serve per installare il file di inizializzazione del php, si devono aggiungere le seguenti righe al file di configurazione di apache: \$ sudo vim /etc/apache2/httpd.conf Nella sezione Load Modules 56 B – Configurazione sorgenti LoadModule php4_module modules/libphp4.so Nella sezione AddType AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps Al termine di questa procedura per provare il funzionamento si crea un file dal nome info.php nella cartella pubblica del server web apache con il seguente codice scritto all’interno: // Print the complete php installation info. <?php phpinfo(); ?> Ora si riavvia il server web con il comando: \$ sudo /usr/local/apache2/bin/apachectl restart Poi una volta aperto il browser si digita la seguente url: http://localhost/info.php Se tutto funziona correttamente si carica una pagina con la descrizione della versione installata del preprocessore di linguaggio e dei moduli caricati. 57 Appendice C Creazione distribuzione personalizzata Questa breve guida é volta alla presentazione e spiegazione della realizzazione di una distribuzione GNU/linux personalizzata, per le proprie esigenze. In questo senzo si é voluta realizzare una distribuzione che avesse pre-installato il software frutto della scelta commentata nei precedenti capitoli, in modo da avere a disposizione uno strumento di uso immediato nel momento in cui la collaborazione tra la facoltá di ingegneria e le cliniche africane fosse possibile. La distribuzione in oggetto si basa su una Ubuntu-8.04.1-desktop-i386, come quella utilizzata durante lo svolgimento del lavoro; lo strumento di personalizzazione utilizzato é il progetto UCK - Ubuntu Customization Kit, distribuito attraverso Sourceforge.net. Il software in questione, sfruttando la tecnica della virtualizzazione del sistema attraverso un emulatore interno, carica la distribuzione di partenza e permette di modificarla con i software classici, ad esempio Synaptic package manager o attraverso la console, una volta terminate le modifiche, l’immagine, viene nuovamente compressa e poi salvata con estensione .iso. C.1 Prerequisiti Innanzitutto bisogna provvedere al recupero degli strumenti necessari. Si deve recuperare una immagine .iso della distribuzione scelta come modello, in 58 C – Creazione distribuzione personalizzata questo caso si é scaricata dal sito: http://www.ubuntu.com/getubuntu/download, l’immagine della distribuzione ubuntu-8.04.1-desktop-i386. In secondo luogo attraverso il portale Sourceforge.net (http://sourceforge.net/projects/uck/) si scarica l’ultima versione pubblicata del progetto UCK, attualmente é disponibile il pacchetto: uck 2.0.4 all.deb. A questo punto per procedere all’installazione del software si consiglia di utilizzare un package manager che abbia la funzionalitá di controllare e risolvere le dipendenze in maniera automatica, ad esempio GDebi - Package Manager. Ora si é pronti per la creazione della propria distribuzione. C.2 Personalizzare la distribuzione Si avvia il programma UCK, si dovrebbe trovare all’interno del menú nella sottosezione sistema, oppure lanciando da shell il comando: \$ uck-gui Tutta la procedura é guidata si seguono le istruzioni a video che, in ordine, permettono di scegliere quali lingue di sistema installare e quale scegliere come lingua predefinita. Si possono scegliere diverse lingue ma questo comporterá una maggiore dimensione della immagine .iso che si andrá a realizzare. In seguito viene chiesto quale desktop manager installare, kde, gnome o altro, anche quı́ si possono effettuare scelte multiple. Successivamente viene chiesto di indicare al programma il path dove é salvata l’immagine della distribuzione di partenza che si é provveduto a scaricare, poi di inserire un nome per salvare la propria distro. Le restanti due schermate chiedono se si vuole procedere alla modifica attraverso strumenti diversi dagli script, i quali andrebbero predisposti in precedenza, e se si vogliono eliminare i file temporanei al termine della procedura, quindi é necessario rispondere in maniera affermativa ad entrambe le richieste, specialmente alla prima che ci permette di eseguire la macchina virtuale interna e modificare, al volo la distribuzione. Al termine, si chiude l’interfaccia grafica e si digita la password di amministratore per permettere al programma di procedere alla esecuzione. 59 C – Creazione distribuzione personalizzata Questa operazione puó risultare lunga poiché inizialmente l’immagine viene scompattata e montata all’interno del file-system come fosse un supporto rimovibile, dopodiché il programma si mette in pausa e chiede all’utente di selezionare il metodo di modifica tra: package manager, console oppure termina la personalizzazione e procedi alla scrittura, al termine di ogni passo di modifica si ritorna a questo punto fino a che non si selezione l’ultima opzione. Per procedere all’installazione di GnuMed si sceglie, innanzitutto, di utilizzare il packcage manager. Una volta aperto il Synaptic, ricordandosi che si é in macchina virtuale, si modificano i repository abilitando anche quelli etichettati come universe e multiverse, si selezionano il DBMS Postgres ed il GnuMed, poi si procede all’installazione cliccando su applica. La procedura termina con un errore dato che in emulazione non é possibile far partire il server postgres o riavviare il sistema ma questo inconveniente sará risolto automaticament, in fase di sonfigurazione al momento dell’installazione effettiva. Non potendo quindi creare il database effettivamente si puó comunque precaricare nella distribuzione tutto il necessario per configurare il server senza l’utilizzo di una connessione internet veloce e cioé le istruzioni scaricate dal sito del progetto (ad esempio sotto forma di pagina web completa) ed il pacchetto contenente gli script per la creazione del database ed altre operazioni di pulizia e test. Il link é il seguente: Istruzioni: http://wiki.gnumed.de/bin/view/Gnumed/ServerInstallUpgrade, Pacchetto: http://www.gnumed.de/downloads/server/GNUmed-server.latest.tgz. In questo caso si é caricato il pacchetto e le istruzioni aprendo una console di sistema ed un altra dalla finestra di personalizzazione generata da UCK perché con la prima si copiano i file dal proprio hard-disk al file-system temporaneo, generato dalla macchina virtuale, mentre con la seconda verifichiamo che effettivamente venga caricato, si digitano i seguenti comandi: Shell del proprio sistema: \$ sudo cp -r /home/x/Download/istruzioni-GnuMed* /home/x/tmp/remaster-root/home/x/ \$ sudo cp /home/x/Download/GNUmed-server.latest.tgz /home/x/tmp/remaster-root/home/x/ 60 C – Creazione distribuzione personalizzata Dove /home/x/Download/ é il path dove l’utente x salva i dati scaricati. I file istruzioni-GnuMed* rappresentano la pagina web completa salvata e la relativa cartella, per questo l’opzione -r al comando di copia cp, il pacchetto GNUmed-server.latest.tgz é un file compresso, il tutto fatto da utente privilegiato poiché il file-system temporaneo é stato creato come super-user. Shell aperta da processo UCK: \$ ls /home/x/ In questo caso dovrebbero venire elencati i file copiati nelle istruzioni precedenti. Il path é identico a quello di sistema dato che il processo UCK usa come esempio proprio quello per creare il file-system temporaneo. A questo punto utilizzando un software di virtualizzazione come il Qemu, presentato in precedenza é possibile provare la distribuzione prima della masterizzazione per verificare la presenza di quanto introdotto. 61 Appendice D Immagini Care2X Figura D.1. Pagina di download del programma, cerchiata in rosso é la data di ultimo aggiornamento. 62 D – Immagini Care2X Figura D.2. CED: pagina principale per la configurazione del sistema accessibile per gli utenti amministratori. Figura D.3. CED: pagina per la modifica delle impostazioni di visualizzazione delle form di inserimento dati. 63 D – Immagini Care2X Figura D.4. CED: pagina per la creazione e modifica dei privilegi d’accesso di utenti che possono accedere al sistema, la differenza tra i ruoli, ad esempio un dottore ed un dipendente amministrativo, si determina in base ai permessi specifici che vengono assegnati: sola lettura, lettura e scrittura oppure nessuno. Figura D.5. CED: errore di visualizzazione quando si chiude la pagina utilizzando il bottone in alto a destra nel frame principale, il refresh crea un nuovo menú CED a fianco del precedente ogni volta che si compie questa azione. 64 D – Immagini Care2X Figura D.6. Pagina di accettazione pazienti, form per la ricerca di una persona precedentemente registrata, altrimenti é possibile passare all’inserimento di un nuovo record nel database, cliccando sulla tab Nuova Persona sopra il riquadro di inserimento testo. Figura D.7. Pagina successiva al login con cui é possibile immettere una descrizione del pc in uso. 65 D – Immagini Care2X Figura D.8. Sottosistema EMR specifico per pazienti inseriti all’interno di un reparto, nel quale é possibile visualizzare tutte le informazioni relative al ricovero in corso. Nella finestra in secondo piano é possibile vedere i dettagli del reparto che si sta utilizzando con la lista dei pazienti ricoverati. Figura D.9. Sottosistema EMR genrico, relativo a tutti i pazienti inseriti all’interno del database della struttura, in questa pagina vengono elencati i documenti prodotti, le informazioni e la storia clinica di ogni individuo. 66 D – Immagini Care2X Figura D.10. Pagina iniziale dell’utente amministratore che possiede il massimo dei privilegi e quindi il menú di sistema, sulla sinistra, é completo. Figura D.11. Pagina iniziale per utente con minori privilegi rispetto all’amministratore, in questo caso il menú rispecchia la lista dei permessi posseduti, determinati attraverso la funzione CED. 67 D – Immagini Care2X Figura D.12. Pagina per l’inserimento di un nuovo paziente nel database, a questa form si arriva da ogni punto del sistema dove si trova il link nuovo paziente. Figura D.13. Pagina corrispondente al pulsante parametri del menú principale, quı́ é possibile settare delle impostazioni generiche relative alla struttura, al proprio account o alla sezione a cui puó accedere l’utente loggato. 68 D – Immagini Care2X Figura D.14. Pagina per la modifica della interfaccia grafica a cui si arriva dalla sezione parametri cliccando il link configurazione. 69 Appendice E Immagini Altri Software E.1 FreeMed Figura E.1. Pagina iniziale di login al sistema. 70 E – Immagini Altri Software Figura E.2. Pagina iniziale dell’utente loggato, vengono visualizzati tutti gli eventi e gli appuntamenti giornalieri, organizzati in categorie. Figura E.3. Pagina iniziale dell’utente loggato, seconda parte della pagina precedente. 71 E – Immagini Altri Software Figura E.4. Pagina per la ricerca o inserimento di un paziente all’interno del database. Figura E.5. Pagina che presenta il risultato della ricerca all’interno del database pazienti, cliccando sul nome si accede alla cartella clinica mentre dal piccolo menú in riga con il nome é possibile vedere, modificare o eliminare i dati. 72 E – Immagini Altri Software Figura E.6. Cartella clinica individuale, tutte le informazioni sono organizzate in box separati, sui quali si puó agire direttamente per modificare le impostazioni di visualizzazione, espandi o elimina, rispetto al default. Figura E.7. Pagina di amministrazione del sistema. 73 E – Immagini Altri Software E.2 GnuMed Figura E.8. Finestra di login al sistema in cui oltre ad inserire le credenziali si puó scegliere a quale database collegarsi, tra quelli imposati durante la fase di installazione o dall’interno del programma. 74 E – Immagini Altri Software Figura E.9. Finestra del programma. In alto, appena sotto la barra dei menú si trova il campo di ricerca paziente, e, una volta selezionato, vengono caricati i dati relativi nei frame sottostanti. Le informazioni sono presentate organizzate in tab, le cui linguette sono in basso nella finestre e sono riconoscibili grazie alle etichette. Tra queste tab da notare sono le ultime due: Manual e Setup, alla prima corrisponde il browaer interno che contiene il manuale completo del programma e la seconda permette di modificare le impostazioni, tra cui i dettagli del server. Le stesse funzioni ed altre, tra cui l’inserimento di pazienti ed utenti del sistema, si trovano nella barra dei menú. 75 E – Immagini Altri Software E.3 OpenClinic Figura E.10. In questa pagina, la prima dopo effettuato il login é possibile scegliere cosa fare, se amministrare il sistema oppure registrare dati riguardanti i pazienti. 76 E – Immagini Altri Software Figura E.11. Pagina introduttiva alla gestione dei dati relativi ai pazienti, una volta effettuata la ricerca é possibile modificare, stampare ed aggiungere nuovi record. Figura E.12. Form per la ricerca di un paziente registrato. 77 E – Immagini Altri Software Figura E.13. Pagina per la gestione del sistema da parte dell’amministratore. Figura E.14. Seconda parte della pagina precedente. 78 E – Immagini Altri Software E.4 OpenEMR Figura E.15. Pagina iniziale di login. 79 E – Immagini Altri Software Figura E.16. Questa schermata presenta la visualizzazione dei dati demografici del paziente, nel frame top, mentre nel frame bot sono elencati i record relativi alla storia clinica, nessuno in questo caso. Figura E.17. Questa schermata presenta la visualizzazione dei record relativi al paziente con la possibilitá di modificarli ed aggiornarli, nel frame superiore; mentre in quello inferiore é aperta la sezione per il caricamento o apertura di documenti esterni al sistema riguardanti la persona stessa. 80 E – Immagini Altri Software Figura E.18. Pagina iniziale del sistema in cui il frame a sinistra rappresenta il menú di scelta della sezione aperta nei due frame centrali, indicati col nome di top, il superiore, e bot, l’inferiore; per questo motivo sono presenti due bottoni di scelta ai lati di ogni categoria. Il menú inizialmente é cliccabile per metá dato che non é ancora stato selezionato alcun paziente. 81 E – Immagini Altri Software E.5 OpenMRS Figura E.19. Pagina iniziale di login. 82 E – Immagini Altri Software Figura E.20. Pagina per la ricerca o creazione di un nuovo paziente. Figura E.21. Inquesta sezione é possibile fare una ricerca all’interno del dizionario che viene compilato in automatico dal sistema quado si inseriscono record relativi a studi, diagnosi o procedure. 83 E – Immagini Altri Software Figura E.22. In questa sezione é possibile inserire i dati all’interno del sistema, tra cui appuntamenti, diagnosi, dati statistici e terapie utilizzate. Figura E.23. Questa pagina elenca tutte le funzioni disponibili per amministrare il sistema. 84 E – Immagini Altri Software E.6 OpenHospital Figura E.24. All’avvio del programma si apre questo menú che raccoglie tutte le funzioni del sistema. 85 E – Immagini Altri Software Figura E.25. Questa immagine presenta alcune delle finestre che rappresentano le varie sezione, andando in ordine, partendo dal menú in senso orario, si vedono il sottomenú relativo al laboratorio analisi, l’elenco dei reparti, l’elenco delle cause di dimissione, le informazioni riguardanti la struttura e l’elenco dei risultati relativi ai parti. 86 E – Immagini Altri Software Figura E.26. Questa immagine presenta alcune delle finestre che rappresentano le varie sezione, andando in ordine, partendo dal menú in senso orario, si vedono il sottomenú relativo alla farmacia, l’elenco dei pazienti con le relative funzioni e l’elenco dei risultati degli esami di laboratorio. 87 E – Immagini Altri Software Figura E.27. Questa immagine presenta alcune delle finestre che rappresentano le varie sezione, andando in ordine, partendo dal menú in senso orario, si vedono l’elenco dei pazienti e la finestra per l’inserimento di un nuovo record, l’elenco dei risultati degli esami di laboratorio e la finestra per l’inserimento di un nuovo record, in ultimo il database farmaceutico. 88 E – Immagini Altri Software E.7 OIO - Open Infrastructure for Outcomes Figura E.28. Pagina di login al sistema. 89 E – Immagini Altri Software Figura E.29. Pagina iniziale che viene aperta dopo il login, presenta l’elenco dei pazienti e le funzioni di ricerca o aggiunta nuovo record. Figura E.30. Form per l’aggiunta di un nuovo paziente. 90 E – Immagini Altri Software Figura E.31. Pagina di presentazione, scelta ed aggiunta delle form che sono utilizzate per inserire i dati relativi ai pazienti. Figura E.32. Pagina di errore generato nel tentativo di accedere alla pagina folders, dove dovrebbero essere elencate le cartelle ed i documenti relativi ai file, esterni al sistema, caricati sul server. 91 E – Immagini Altri Software Figura E.33. Figura E.34. Pagina iniziale della sezione amministrazione. Pagina per la creazione di un nuovo utente. 92 E – Immagini Altri Software Figura E.35. Pagina che presenta i report salvati nel sistema, risultato della compilazione delle form. Figura E.36. Pagina di visualizzazione ed esportazione del report selezionato attraverso la finestra precedente. 93