UNIVERSITA’ POLITECNICA DELLE MARCHE facoltà DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA PROGETTO DI UN MIDDLEWARE IN “RUBY ON RAILS” PER LA TELEREFERTAZIONE MEDICA: REALIZZAZIONE LATO sERVER Relatore: Prof. Aldo Franco Dragoni Correlatore: Prof. Paolo Puliti Candidato: Romagnoli Luca
Ambito Telerefertazione Ruby on Rails “Possibilità per un medico ,nell'ambito della diagnostica clinica, di effettuare la diagnosi su un paziente che non è fisicamente nello stesso posto del medico, attraverso la trasmissione a distanza di dati prodotti da strumenti diagnostici.” Ruby on Rails Ancona, 04/12/2008
Obiettivi Realizzazione di un sistema che offre un servizio di telerefertazione medica accessibile da persone dotate sia di browser recenti che meno recenti, sia da navigatori dotati di connessioni veloci che da utenti con collegamenti lenti utilizzando strumenti open source Ancona, 04/12/2008
Open source Vantaggi open source: Ha un basso TCO Non lega al fornitore Innovazione e potenziale per l'evoluzione sono generalmente agevolati Maggiore flessibilità Maggiore efficienza Ancona, 04/12/2008
Ruby on Rails Architettura MVC è un framework open source per applicazioni web scritto in Ruby la cui architettura è fortemente ispirata al paradigma Model-View-Controller (MVC). Architettura MVC Ancona, 04/12/2008
Ruby on Rails La progettazione di Rails è stata governata da due concetti chiave: DRY (Don’t repeat Yourself): le definizioni devono essere poste una volta soltanto convention-over-configuration: il programmatore ha bisogno di metter mano alla configurazione soltanto per ciò che differisce dalle convenzioni Ancona, 04/12/2008
Ruby e Java Somiglianze E’ un linguaggio interpretato è un linguaggio OO (Object Oriented) Dispone di un Garbage Collector per la gestione della memoria è portabile ed è utilizzabile con i principali sistemi operativi dispone di uno strumento di documentazione del sorgente (RDoc) molto simile a JavaDoc Ancona, 04/12/2008
Ruby e Java Differenze Il codice non necessita di compilazione E’ dynamically typed non sono presenti primitive non sono presenti interfacce non è possibile fare overloading dei metodi Ancona, 04/12/2008
Ruby e Java Vantaggi di Java Comunità con dimensioni molto maggiori Facilità nel trovare componenti di terze parti, frameworks e servizi E’ maturo Offre molta scelta Più indicato per sviluppare progetti con particolari caratteristiche Può gestire situazioni complicate Two Phase Commit Oggetti distribuiti Ancona, 04/12/2008
Ruby e Java PRODUTTIVITA’ Perché Ruby? Meno codice programmi più brevi riducano i costi di mantenimento in maniera proporzionale Maggiore leggibilità Minor tempo per la configurazione PRODUTTIVITA’ Ancona, 04/12/2008
Ruby e Java Maggiore leggibilità Es. Cicli Es. vincoli sui modelli: 10.times { ... } RUBY for (int i=0; i<10; i++) { ... } JAVA Es. vincoli sui modelli: class User < ActiveRecord::Base has_many :events has_many :messages ,:dependent =>:destroy validates_uniqueness_of :username validates_presence_of :name, :surname,:password,:username validates_length_of :username, :minimum=>6, :too_short=>"please enter at least %d character for username" ... Ancona, 04/12/2008
Ruby e Java Passi necessari per l’utilizzo di un framework: Task Ruby Installare un framework • gem install framework • Identificare tutte le dipendenze • Installare ogni dipendenza • Installare il framework Configurarlo • Configurazione minima • Installare le librerie necessarie con gem • Eseguire l'applicazione • Aggiungere le librerie necessarie al progetto • Settare le variabili come classpath • Configurare con XML • Compilare e eseguire l'applicazione Ancona, 04/12/2008
Produttività Uno dei fattori più importanti nello sviluppo di un software Con una maggiore produttività, si ha più tempo per concentrarsi sul miglioramento delle caratteristiche, delle performance, e sulla qualità. Costi con una maggiore produttività Numero minore di sviluppatori per progetto. Si spende meno fatica sulla comunicazione per piccoli progetti. Costi di managment minori per progetto Ancona, 04/12/2008
Miro on Rails Il Sistema Sanitario si stia avviando verso nuove frontiere di riorganizzazione e di convergenza delle informazioni. Ancona, 04/12/2008
Miro on rails Caratteristiche di una cartella clinica: contiene tutte le informazioni relative al paziente presentata allo stesso modo sia per il dottore che per il requester possibilità per il requester di effettuare operazioni di inserimento e modifica dei dati fornisce con una certa rapidità le informazioni desiderate Ancona, 04/12/2008
Miro on Rails Informazioni Cartella clinica: Profilo Anamnesi Allergie Informazioni generali sulla famiglia Patologie familiari Patologie Problemi fisiologici Problemi clinici Ancona, 04/12/2008
Richiesta altra opinione Miro on Rails Problemi clinici rappresentano anche il vero punto di scambio tra requester e doctor Ciclo di vita: Possibilità di aggiungere uno o più allegati relativi a esami di laboratorio effettuati per tale problema Refertato Chiuso Aperto Richiesta altra opinione Ancona, 04/12/2008
Miro on Rails L’intero progetto è accessibile da “http://193.205.130.163/miro/” Ancona, 04/12/2008
Conclusioni Obiettivi raggiunti Sviluppi futuri L’architettura che è stata realizzata è in grado di fornire un valido supporto anche per altri servizi tipici di applicazioni di telemedicina come la consultazione della cartella clinica on-line. Servizio accessibile anche da browser meno recenti e da connessioni lente Sviluppi futuri possibilità per il requester di lavorare off-line meccanismo di firma digitale con smart card per i dottori Ancona, 04/12/2008
Grazie