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
“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
2
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
3
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
4
Ruby on Rails

è un framework open source per applicazioni web scritto in Ruby la cui
architettura è fortemente ispirata al paradigma Model-View-Controller
(MVC).
Ancona, 04/12/2008
Architettura MVC
5
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
6
Ruby e Java
Somiglianze
1. E’ un linguaggio interpretato
2. è un linguaggio OO (Object Oriented)
3. Dispone di un Garbage Collector per la gestione della memoria
4. è portabile ed è utilizzabile con i principali sistemi operativi
5. dispone di uno strumento di documentazione del sorgente (RDoc)
molto simile a JavaDoc
Ancona, 04/12/2008
7
Ruby e Java
Differenze
1. Il codice non necessita di compilazione
2. E’ dynamically typed
3. non sono presenti primitive
4. non sono presenti interfacce
5. non è possibile fare overloading dei metodi
Ancona, 04/12/2008
8
Ruby e Java
Vantaggi di Java
1. Comunità con dimensioni molto maggiori
2. Facilità nel trovare componenti di terze parti,
frameworks e servizi
3. E’ maturo
4. Offre molta scelta
5. Più indicato per sviluppare progetti con particolari
caratteristiche
6. Può gestire situazioni complicate
1. Two Phase Commit
2. Oggetti distribuiti
Ancona, 04/12/2008
9
Ruby e Java
Perché Ruby?
1. Meno codice
•
programmi più brevi riducano i costi di mantenimento
in maniera proporzionale
2. Maggiore leggibilità
3. Minor tempo per la configurazione
PRODUTTIVITA’
Ancona, 04/12/2008
10
Ruby e Java
Maggiore leggibilità
• Es. Cicli
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
11
Ruby e Java
Passi necessari per l’utilizzo di un framework:
Task
Installare un framework
Ruby
• gem install framework
Java
• 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
12
Produttività
1. Uno dei fattori più importanti nello sviluppo di un
software
2. Con una maggiore produttività, si ha più tempo per
concentrarsi sul miglioramento delle caratteristiche,
delle performance, e sulla qualità.
3. Costi con una maggiore produttività
1. Numero minore di sviluppatori per progetto.
2. Si spende meno fatica sulla comunicazione per piccoli
progetti.
3. Costi di managment minori per progetto
Ancona, 04/12/2008
13
Miro on Rails
 Il Sistema Sanitario si stia avviando verso nuove frontiere di
riorganizzazione e di convergenza delle informazioni.
Ancona, 04/12/2008
14
Miro on rails

Caratteristiche di una cartella clinica:
1.
2.
3.
4.
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
15
Miro on Rails

Informazioni Cartella clinica:


Profilo
Anamnesi






Allergie
Informazioni generali sulla famiglia
Patologie familiari
Patologie
Problemi fisiologici
Problemi clinici
Ancona, 04/12/2008
16
Miro on Rails

Problemi clinici


rappresentano anche il vero punto di scambio tra
requester e doctor
Ciclo di vita:
Refertato
Chiuso
Aperto
Richiesta
altra
opinione

Possibilità di aggiungere uno o più allegati
relativi a esami di laboratorio effettuati per tale
problema
Ancona, 04/12/2008
17
Miro on Rails

L’intero progetto è accessibile da
“http://193.205.130.163/miro/”
Ancona, 04/12/2008
18
Conclusioni

Obiettivi raggiunti

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
19
Grazie
Scarica

Sistema di Autenticazione KErberos