Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
TESI DI LAUREA
DOSEWEBUNAPIATTAFORMAWEB
DISUPPORTOALLAGESTIONEDEGLISTUDICLINICI
StudioD.O.S.E.:DrugOutcomesSurvEy
Relatore:
Chiar.ma Prof.ssa Enrichetta Gentile
Laureando:
Lepore Antonio
Introduzione __________________________________ 4
Capitolo 1: Contesto di Riferimento _________________ 8
1.1 Il Consorzio Mario Negri Sud. Un istituto di ricerca Biomedica 8
1.1.1 Il Dipartimento di Farmacologia Clinica e Epidemiologia
(DFCE) ________________________________________ 10
1.1.2 Il Laboratorio di Epidemiologia Assistenziale e Sistemi
Informatici (LEASI) ______________________________ 12
1.2 LEpidemiologia e i diversi tipi di studio__________________ 13
1.3 La raccolta e la cultura dei dati_______________________ 16
1.3.1 Il problema clinico: lArtrite reumatoide ______________ 22
1.4 Lo Studio D.O.S.E., Uno Studio Osservazionale Di Monitoraggio
Su Nuovi Farmaci __________________________________ 27
Capitolo 2: Analisi dei Requisiti ___________________ 30
2.1 Motivazioni & Scopo_________________________________ 31
2.2 Contesto di Business ________________________________ 32
2.3 Capacit __________________________________________ 33
2.3.1 Capacit di Presentazione (Parte Pubblica) ____________ 33
2.3.2 Capacit di Accesso (Parte Privata)__________________ 34
2.3.3 Capacit di Supervisione (Parte Privata)______________ 34
2.3.4 Capacit di Raccolta (Parte Privata) _________________ 34
2.4 Premesse dei Requisiti: Stakeholder ____________________ 36
2.5 Servizi del Sistema _________________________________ 39
2.5.1 Servizi del Sistema: Contesto del Sistema: ___________ 39
2.5.2 Servizi del Sistema: Requisiti Funzionali______________ 41
2.5.3 Servizi del Sistema: Requisiti Informativi _____________ 46
2.6 Vincoli di Sistema __________________________________ 50
2.6.1 Vincoli di Sistema: Requisiti di Interfaccia ____________ 51
2.6.2 Vincoli di Sistema: Requisiti Operativi _______________ 52
2.6.3 Vincoli di Sistema: Altri Vincoli _____________________ 53
2.6.4 Vincoli di Sistema: Stabilit dei Vincoli _______________ 55
Capitolo 3: Progetto di sistema ___________________ 56
3.1 Classi stereotipate __________________________________ 56
3.1.1 Diagramma delle classi stereotipate: entit ____________ 56
3.2 Casi duso _________________________________________ 57
3.2.1 Diagramma dei casi duso __________________________ 57
3.3 Casi duso: Informazioni di base________________________ 59
3.4 Scenari ___________________________________________ 75
3.5 Diagrammi di Sequenza ______________________________ 91
3.6 Progetto Dei Dati __________________________________ 105
3.6.1 Diagramma della dipendenza dei Dati________________ 107
3.6.2 Modello del Database ____________________________ 108
2
3.6.3 Dettaglio Dei Dati _______________________________ 108
Capitolo 4: Analisi delle tecnologie impiegate _______ 124
4.1 Larchitettura J2EE (Java 2 Enterprise Edition)____________ 126
4.2 I tre strati della piattaforma J2EE: _____________________ 129
4.2.1 Struts e il Web Tier _____________________________ 132
4.2.2 Java Servlet e Java Server Pages___________________ 133
4.3 Utilizzare un framework _____________________________ 135
4.4 Design Patterns in J2EE _____________________________ 136
4.4.1 Il pattern MVC (Model-View-Controller) ______________ 138
4.4.2 Struts e il pattern MVC ___________________________ 144
4.5 Hibernate ________________________________________ 148
4.6 Ambiente di Sviluppo e Deploy ________________________ 152
Capitolo 5: Manuale dUso ______________________ 155
5.1 Interfaccia________________________________________ 155
5.2 Pulsanti __________________________________________ 156
5.3 Login e Logout ____________________________________ 158
5.4 Gestione schede: Inserimento\Visualizzazione\Stampa _____ 161
5.5 Gestione Pazienti: Ricerca\Elenco\Cancellazione\Esportazione 165
5.6 Ottenere documentazione____________________________ 167
Conclusioni e Sviluppi futuri ____________________ 168
Glossario e Acronimi __________________________ 169
Bibliografia _________________________________ 173
Allegati_____________________________________ 174
3
Introduzione
4
E importante sottolineare alcune considerazioni utili ad
una migliore comprensione del lavoro svolto.
5
realizzazione di Archivi capaci di mantenere accessibili e
costantemente aggiornabili popolazioni anche numerose di
pazienti, spesso seguiti per lunghi periodi di tempo;
6
In sintesi il presente lavoro di tesi intende illustrare le
soluzioni informatiche elaborate presso i Laboratori dellIstituto
Consorzio Mario Negri Sud nella messa a punto di una
piattaforma web di supporto alla gestione di uno studio
osservazionale sui trattamenti con farmaci biologici nei pazienti
con artrite reumatoide. La tesi organizzata in cinque capitoli
in cui vengono discussi i vari aspetti del lavoro svolto.
Nel primo capitolo viene descritto il contesto scientifico e
sanitario in cui si elaborata la piattaforma web sviluppata.
Nel secondo capitolo vengono analizzati i requisiti che
una piattaforma web deve possedere ai fini di poter fornire il
supporto necessario alla gestione di uno studio del tipo di quello
proposto.
Nel terzo capitolo viene presentato il progetto del sistema
con le sue varie caratteristiche.
Nel quarto capitolo vengono analizzate e motivate le
scelte riguardo le tecnologie impiegate.
Nel quinto capitolo, infine, presentato il manuale duso
per lutente.
Le conclusioni riassumono brevemente i risultati che
lanalisi approfondita del sistema ha consentito di trarre e illustra
alcuni dei possibili sviluppi futuri.
7
Capitolo 1: Contesto di Riferimento
8
oncologia molecolare e clinica;
coordinamento di studi clinici controllati sul diabete, infarto
miocardico, tumore della mammella, e malattie
mieloproliferative;
malattie cardiovascolari;
epidemiologia assistenziale e farmacoepidemiologia;
ricerca clinica ed epidemiologica e formazione in medicina
generale, sistemi informativi e politiche sanitarie, rapporti
tra salute ed ambiente;
metodologie analitiche per il monitoraggio ambientale e
agroalimentare.
9
1.1.1 Il Dipartimento di Farmacologia Clinica e
Epidemiologia (DFCE)
10
aziendale ed il trasferimento tecnologico per lo sviluppo dei
sistemi socio-sanitari regionali.
La strategia comune ai progetti specifici del DFCE consiste
nel coinvolgere, metodologicamente e culturalmente, gli
operatori e i dirigenti del servizio sanitario (medici - ospedalieri,
specialisti, di medicina generale, di sanit pubblica e direzione
aziendale - farmacisti, infermieri, amministrativi, pianificatori e
operatori socio-assistenziali) secondo una logica di
collaborazione in rete tra persone ed istituzioni, partecipazione
attiva e condivisione di obiettivi, progetti e risultati.
11
1.1.2 Il Laboratorio di Epidemiologia Assi stenziale e
Sistemi Informatici (LEASI)
12
1.2 LEpi demiologia e i diversi tipi di studio
Scopi dell'epidemiologia:
13
Epidemiologia descrittiva:
Descrive eventi sanitari come malattie, cause di morte e la
presenza di fattori di rischio come ad esempio il fumo di tabacco.
questa la branca che utilizza gli strumenti statistici detti misure
di frequenza (come i tassi di incidenza o di prevalenza, rapporti)
e informazioni di tipo demografico.
Epidemiologia analitica:
Indaga e cerca relazioni causa-effetto tra fattori di rischio e
malattie. Riprendendo l'esempio precedente, l'epidemiologia
analitica cerca il nesso tra il fattore di rischio "fumo di sigaretta"
e l'eventuale insorgenza di patologie legata ad esso (come
cancro al polmone, enfisema, etc.). Si pone, quindi, come
obiettivo quello di rispondere a domande come: "chi si
ammalato?", "fa parte di una qualche categoria a rischio?",
"dove?", "quando?", "perch?".
Epidemiologia sperimentale
Valuta l'efficacia degli interventi sanitari adottati in seguito
a indagini epidemiologiche. Studi di epidemiologia sperimentale
possono essere sia di tipo preventivo (ad esempio la valutazione
dell'effettiva riuscita di campagne di sensibilizzazione) che
terapeutico (ad esempio sperimentazioni sui farmaci e tecniche
operatorie). Gli studi in epidemiologia sperimentale si possono
effettuare a singolo cieco, a doppio cieco o a triplo cieco. A
seconda che:
1) solo i volontari non hanno coscienza di essere parte del
gruppo dei controlli o degli sperimentali;
14
2) anche il ricercatore non sa chi appartenga ad un gruppo
e chi ad un altro (lo sa solo il supervisore);
3) ci si affidi ad un ricercatore esterno.
15
1. 3.1 La raccolta e la cultura dei dati
16
I dati sono numeri in un contesto.
17
articolazione infiammata. In altri casi, invece, i dati sono
esprimibili in forma numerica; ad esempio, il numero di
pulsazioni cardiache al minuto.
Quasi sempre, le osservazioni non quantificabili
numericamente possono essere trasformate in un numero in
base a criteri pi o meno arbitrari. Ad esempio, come nel
problema qui esaminato, stato necessario utilizzare scale
analogico digitali per quantificare la percezione soggettiva del
dolore in un paziente con artrite reumatoide codificando
lintensit del dolore con i valori 0, 1, 2, 3, 4, ecc.. dove 0
corrisponde allassenza del dolore, 1 a dolore appena
percettibile, 2 a dolore lieve ecc. Questo tipo di trasformazione
molto utile quando i dati devono essere sottoposti ad una
elaborazione.
In epidemiologia i dati sono sempre rappresentati da
numeri.
Ad esempio, uno studio epidemiologico potrebbe mirare a
stabilire QUANTI soggetti sono affetti da una malattia in un
determinato momento, oppure QUANTI nuovi casi si sono
verificati in un lasso di tempo, oppure QUANTI soggetti esposti
ad un certo fattore vengono colpiti dalla malattia, ecc.
Ecco perch l'epidemiologia, servendosi di dati numerici,
ricorre pi di altre discipline a tabelle o grafici in cui riportare i
dati numerici. Per lo stesso motivo, l'epidemiologia si serve
frequentemente di due altre discipline: la matematica e,
soprattutto, la statistica. Quest'ultima comprende i metodi di
studio dei fenomeni collettivi e quindi rappresenta logicamente
la compagna ideale dell'epidemiologia (e di altre discipline).
18
La statistica come l'interfaccia tra la matematica e la
scienza medica.
19
discipline mediche di base (anatomia, fisiologia, patologia
generale ecc.).
20
pianificare ed implementare piani di controllo e
sorvegliarne l'andamento;
soddisfare le richieste di informazioni provenienti da
organismi nazionali e internazionali.
21
1.3.2 Il problema clinico: l Artrite reumatoide
I sintomi:
1. Dolore
2. Tumefazione calda ma non arrossata
3. impotenza funzionale delle articolazioni
22
La terapia e i farmaci biologici per lArtrite reumatoide
23
Affinch ci sia realizzabile devono essere coinvolti i Medici
di Medicina Generale e gli Specialisti alla condivisione di un
definito percorso diagnostico-terapeutico.
All'esordio dell'artrite il malato lamenta dolore e
tumefazione articolare. Per questo motivo, nella maggior parte
dei casi, si rivolge al proprio Medico di Medicina Generale che
ha l'importante compito di sospettare la malattia e di inviare
tempestivamente il malato allo specialista. Entrambi i medici, a
disposizione del malato, avranno cura di sorvegliare l'evoluzione
della malattia e i potenziali effetti tossici dei farmaci,
collaborando in stretta integrazione, nel rispetto dei reciproci
ruoli.
24
Tabella 1: Farmaci AR
25
Per questo motivo sono stati individuati Centri di
Riferimento in ogni Regione per la gestione di questi malati e
la trasmissione dei dati al Ministero.
E intuibile che questi potenti farmaci dovrebbero essere
impiegati, oltre che nei malati con AR evoluta, attiva e resistente
alle terapie convenzionali, nelle prime fasi della malattia al fine di
evitare levoluzione verso linvalidit e determinare quindi un
risparmio futuro di risorse economiche.
26
1.4 Lo Studio D.O.S.E., Uno Studio Osservazionale
Di Monitoraggio Su Nuovi Farmaci
27
Figura 2: Stato attuale dei centri aderenti allo studio
28
decidere di non partecipare o di ritirasi dallo studio in qualsiasi
momento, senza che la qualit e le modalit dellassistenza
offerta siano influenzate in alcun modo.
Lo studio avr la durata di un anno e per valutare nel
tempo il decorso della malattia sono previste quattro visite di
controllo: a tre, sei, nove e dodici mesi a partire dal giorno di
inizio dellosservazione (visite Follow-Up) .
Per acquisire il parere, da parte del paziente, sulla cura
prescritta sar richiesto, al paziente stesso, di rispondere ad
alcune domande riportate su due questionari, che permetteranno
di ottenere informazioni importanti sulla malattia e sullo stato di
salute complessivo del soggetto partecipante.
Tutte le informazioni raccolte, insieme a quelle degli altri
pazienti che accetteranno di partecipare, saranno inserite in una
banca dati comune e saranno sottoposte ad una serie di
elaborazioni a scopo scientifico.
Tutte le informazioni raccolte saranno trattate con modalit
idonee a garantire l'assoluta riservatezza, confidenzialit e
sicurezza in conformit a quanto previsto dalle norme per la
tutela dei dati personali e del diritto alla riservatezza (D. Lgs.
196/03). Ciascun soggetto sar identificato mediante un codice
che impedir qualsiasi specifica identificazione.
29
Capitolo 2: Analisi dei Requisiti
30
funzionalit, la soddisfazione, ecc.), accanto a quello del medico
curante.
31
2.2 Contesto di B usiness
32
2.3 Capacit
33
Accesso ai contatti: vengono mostrati i recapiti telefonici,
di posta elettronica e logistici del Data Manager, della segreteria
e del supporto informatico.
34
Elimina paziente esistente: viene mostrato un
messaggio di avvertimento che richiede la conferma
delleliminazione del paziente.
Ricerca pazienti: vengono mostrati alcuni campi di
ricerca che permettono la ricerca di uno specifico paziente per
Data di Nascita, Codice e Sesso.
Prelevare materiale: viene mostrato un elenco di
documenti informativi relativi allo studio prelevabili in formato
testo digitale.
35
2.4 Premesse d ei Requisiti: Stakeholder
Il Referente pu:
Accedere alla parte pubblica del sistema (Home, Protocollo,
Gruppo, Contatti, Diagramma)
Accedere alla parte privata in modalit supervisore (Lista
Centri, Elenco Pazienti, Esporta, Stampa, Ricerca, Preleva)
36
Accedere alla parte privata in modalit supervisore limitato
(Lista Centri, Elenco Pazienti)
37
Sviluppatori: il team di sviluppo dopo aver redatto i
documenti di Analisi e Progettazione sar impiegato nella codifica
del sistema Dose Web.
Sono anche responsabili di scegliere gli strumenti piu
adatti (IDE, framework, Database ecc), dellintegrazione di
nuove componenti e della manutenzione evolutiva.
38
2.5 Servizi del S istema
Si classificano in:
Contesto del sistema (Diagramma di contesto)
o Requisiti funzionali: sono elenchi di servizi che il
sistema deve fornire, indicano come dovrebbe
reagire a particolari input e come dovrebbe
comportarsi in particolari reazioni. In alcuni casi
posso affermare esplicitamente cosa il sistema non
dovrebbe fare (processi di business).
o Requisiti informativi: sono requisiti che derivano
dal dominio di applicazione del sistema, ne riflettono
le caratteristiche e i limiti. (informazioni di business).
39
Figura 3: Diagramma di contesto del sistema
40
2.5.2 Servizi del Sistema: Requisiti Funzional i
41
RF6 Il Soggetto Sponsor inserisce le sue credenziali nel sistema per
visualizzare:
LISTA DEI CENTRI insieme al TOT PAZIENTI
Complessivo
TOT PAZIENTI per ogni Centro nello stessa vista
RF7 Il Referente del Progetto pu Esportare ELENCO PAZIENTI per
ogni centro in formato CSV contenente tutti i Dati richiesti dallo
Studio
RF8 Il Referente del Progetto pu Stampare lELENCO PAZIENTI
per ogni Centro Attivo in Formato Cartaceo o PDF contenente
tutti i Dati richiesti dallo Studio
RF9 LUtente del Centro Attivo pu inserire un NUOVO PAZIENTE
compilando la Scheda VISITA INIZIO STUDIO (Allegato 1)
RF10 LUtente del Centro Attivo pu effettuare il Download dei file in
formato ODT, DOC, PDF:
Allegato 1: CRF Visita inizio Studio
Allegato 2: CRF Visita Follow UP 3,6,9,12 mesi
Allegato 3: Scheda Informativa e Dichiarazione di
consenso informato
Allegato 4: Scheda Informativa per il Medico Curante
Allegato 5: CRF Rilevazione dei costi diretti e
indiretti
Allegato A1: Valutazione da parte del paziente
Allegato A2: Valutazione da parte del medico
Allegato A3: CRF Questionario sullo stato di salute
(SF36)
Allegato A4: CRF Indice di disabilit funzionale (HAQ)
42
RF11 LUtente del Centro Attivo, dopo ogni compilazione deve:
cliccare sul Tasto SALVA per inviare i Dati al Database
Centrale.
Viceversa deve cliccare sul Tasto CANCELLA per
azzerare tutti i campi della scheda.
RF12 LUtente del Centro Attivo pu Cancellare un Paziente e tutte le
sue SCHEDE cliccando sul tasto ELIMINA PAZIENTE in ELENCO
PAZIENTI
RF13 Il Sistema mostra una Richiesta di Conferma per le operazioni
di:
SALVA\CANCELLA SCHEDA
ELIMINA PAZIENTE
RF14 Il Sistema mostra un avviso se in una determinata SCHEDA
sono presenti Dati Errati o Mancanti.
RF15 LUtente del Centro Attivo pu Stampare le SCHEDE ultimate di
ogni Paziente nel suo Centro
RF16 LUtente del Centro Attivo pu Esportare lELENCO PAZIENTI
del suo Centro in formato CSV contenente tutti i Dati richiesti
dallo studio
RF17 LUtente del Centro Attivo pu Stampare lELENCO PAZIENTI
del suo Centro in Formato Cartaceo o PDF contenente tutti i
Dati richiesti dallo Studio
RF18 LUtente del Centro Attivo per ogni NUOVA SCHEDA VISITA
INIZIO STUDIO (Allegato 1) deve compilare anche la SCHEDA
VALUTAZIONE DA PARTE DEL MEDICO (Allegato A2)
RF19 LUtente del Centro Attivo per ogni NUOVA SCHEDA VISITA
INIZIO STUDIO (Allegato1) deve compilare anche la SCHEDA
QUESTIONARIO SULLO STATO DI SALUTE (SF36)
(AllegatoA3)
43
RF20 LUtente del Centro Attivo per ogni NUOVA SCHEDA VISITA
INIZIO STUDIO (Allegato 1) deve compilare anche la SCHEDA
INDICE DI DISABILITA FUNZIONALE (HAQ) (Allegato A4)
RF21 LUtente del Centro Attivo pu inserire una NUOVA SCHEDA di
VISITA FOLLOW-UP 3 mesi (Allegato 2) DOPO aver inserito
la SCHEDA VISITA INIZIO STUDIO (Allegato 1)
RF22 LUtente del Centro Attivo pu inserire una NUOVA SCHEDA di
VISITA FOLLOW-UP 6 mesi (Allegato 2) DOPO aver inserito
la SCHEDA di VISITA FOLLOW-UP 3 mesi (Allegato 2)
RF23 LUtente del Centro Attivo pu inserire una NUOVA SCHEDA di
VISITA FOLLOW-UP 9 mesi (Allegato 2) DOPO aver inserito
la SCHEDA di VISITA FOLLOW-UP 6 mesi (Allegato 2)
RF24 LUtente del Centro Attivo pu inserire una NUOVA SCHEDA di
VISITA FOLLOW-UP 12 mesi (Allegato 2) DOPO aver inserito
la SCHEDA di VISITA FOLLOW-UP 9 mesi (Allegato 2)
RF25 LUtente del Centro Attivo per ogni SCHEDA di VISITA
FOLLOW-UP 3, 6, 9, 12 mesi (Allegato 2) deve compilare
anche la SCHEDA RILEVAZIONE DEI COSTI (Allegato 5)
RF26 LUtente del Centro Attivo per ogni SCHEDA di VISITA
FOLLOW-UP 3, 6, 9, 12 mesi (Allegato 2) deve compilare la
SCHEDA VALUTAZIONE DA PARTE DEL MEDICO (AllegatoA2)
RF27 LUtente del Centro Attivo per ogni SCHEDA di VISITA
FOLLOW-UP 12 mesi (Allegato 2) deve compilare ANCHE la
SCHEDA QUESTIONARIO SULLO STATO DI SALUTE (SF36)
(Allegato A3)
RF28 LUtente del Centro Attivo per ogni SCHEDA di VISITA
FOLLOW-UP 3, 6, 9, 12 mesi (Allegato 2) deve compilare la
SCHEDA INDICE DI DISABILITA FUNZIONALE (HAQ)
(Allegato A4)
44
RF29 LUtente del Centro Attivo pu RITIRARE un Paziente dallo
Studio Dopo la SCHEDA VISITA INIZIO STUDIO (Allegato 1)
o Dopo una SCHEDA di VISITA FOLLOW-UP 3, 6, 9 mesi
(Allegato 2)
RF30 Il Paziente pu decidere di Ritirarsi dallo Studio compilando la
SCHEDA DI FOLLOW-UP12/FINE STUDIO.
Il sistema non permette linserimento di nuove schede per i
Pazienti Ritirati.
RF31 Ogni centro pu effettuare un singolo accesso al sistema e una
singola operazione di:
INSERIMENTO
MODIFICA
CANCELLAZIONE
per volta.
RF32 Le operazioni di:
INSERIMENTO
MODIFICA
CANCELLAZIONE
devono essere effettuate parallelamente da pi centri diversi.
Tabella 2
45
2.5.3 Servizi del Sistema: Requisiti Informativi
46
Contiene i dati relativi alla visita di Inizio
Studio (Allegato1)
Struttura:
Codice_Paziente, Codice_Centro, Data,
Dati_Anamnesi_Clinica,
Dati_Valutazione_AR,
RI4 Scheda Reclutamento
Dati_Anamnesi_Farmacologica
Relazioni:
Paziente(1..1), Indice_HAQ(1..1),
Questionario_SF36(1..1),
Scheda FUP 3/6/9(1..3),
Scheda FUP 12(1..1)
Contiene i dati relativi alla Visita Follow-
Up 3,6,9 mesi (Allegato 2)
Struttura:
Codice_Paziente, Codice_Centro, Data,
RI5 Scheda FUP 3/6/9
Dati_Valutazione_AR,
Dati_Trattamenti_Attuali
Relazioni:
Scheda Reclutamento(1..1)
Contiene i dati relativi alla Visita Follow-
Up 12 mesi (Allegato 2)
Struttura:
Codice_Paziente, Codice_Centro, Data,
RI6 Scheda FUP 12
Dati_Valutazione_AR,
Dati_Trattamenti_Attuali
Relazioni:
Scheda Reclutamento(1..1)
47
Contiene i dati relativi alla rilevazione dei
costi diretti e indiretti
Struttura:
Codice_Paziente, Codice_Centro,
RI7 Scheda Costi Dati_Costi_Diretti, Dati_Costi_Indiretti,
Dati_Caregiver, Dati_Costi_Trasporto
Relazioni:
Scheda FUP 3/6/9(1..1),
Scheda FUP 12(1..1)
Contiene i dati relativi alla valutazione
da parte del medico (Allegato A2)
Struttura:
Scheda Valutazione Dati_Articolazioni, Vas_Malattia
RI8
Medico Relazioni:
Scheda_Reclutamento(1..1),
Scheda_FUP3/6/9(1..1),
Scheda_FUP12(1..1)
Contiene i dati del Questionario sullo
Stato di Salute SF36 (Allegato A3)
Struttura:
RI9 Questionario_SF36
Nome, Cognome, Data, Risultato_SF36
Relazioni:
Scheda_Reclutamento(1..1)
48
Contiene i dati dellIndice di Disabilit
Funzionale HAQ (Allegato A4)
Struttura:
RI10 INDICE_HAQ Dati_Questionario,
Risultato_Questionario
Relazioni:
Scheda_Reclutamento(1..1)
Tabella 3
49
2.6 Vincoli di Sistema
Figura 4:Vincoli
50
2.6.1 Vincoli di Sistema : Requisiti di Interfaccia
51
2.6.2 Vincoli di Sistema: Requisiti Operativi
V4: Hardware
Server:
Server HP ProLiant serie ML115 G5
1 Cpu AMD Athlon 4450B Dual Core a 2,30 GHz
8GB SDRAM DDR2 PC2-6400 (800Mhz)
Controller SATA2 RAID (0,1,5) Hotswap
4 Dischi SATA2 da 500GB in configurazione Raid 5
Ethernet Gigabit
Gruppo di Continuit dedicato APC Smart-UPS XL 750VA
V5: Software
Client:
Sistema Operativo: Il sistema Dose Web OS-Indipendent
JAVA VM: Version 6 Update 14
Browser Web Compatibili: Mozilla Firefox 3.x, Apple Safari
4.x, Opera 10.x, Google Chrome 2.x
52
Server:
Sistema Operativo: Red Hat Enterprise Linux 5 server
Server Web: Apache 2 Http Server
Web Container: Apache Tomcat 6.x
JAVA VM: Version 6 Update 14
DBMS: MySql 5.x
53
norme per la tutela dei dati personali e del diritto alla
riservatezza (D. Lgs. 196/03).
V9: Affidabilit
54
2.6.4 Vincoli di Sistema: Stabili t dei Vincoli
VINCOLO
Stabile
Stabile
Non
Motivazione
V1
V2
V3
Levoluzione del sistema potrebbe richiedere
V4 laggiornamento dei requisiti hardware.
Levoluzione del sistema potrebbe richiedere
V5 laggiornamento dei requisiti software.
Levoluzione del sistema potrebbe introdurre una
V7
Levoluzione del sistema deve tenere conto di
V9
Tabella 4
55
Capitolo 3: Progetto di sistema
56
3.2 Casi duso
57
Figura 6: Casi duso
58
3.3 Casi duso : Informazioni di base
59
Il sistema riconosce lutente mostra una pagina diversa a
seconda del tipo di utente:
1) Responsabile del progetto (Monitor): Lista dei centri
Post-Condizioni
attivi
per il successo
2) Utente del centro attivo (Medico): Elenco Pazienti
3) Soggetto sponsor (Wyeth Lederle S.p.A): Lista dei centri
attivi
L'utente non possiede username e password:
lutente non pu accedere.
Lutente ha dimenticato username e password: il
sistema suggerisce i contatti per richiederli
Post-Condizioni nuovamente.
per il fallimento Lutente non ha ancora ricevuto username e
password: il sistema suggerisce i contatti per
richiederli.
Lutente ha inserito username e password eratti: il
sistema avverte dellerrore.
Evento
Lutente ha cliccato sul pulsante di LOGIN.
Innescante
Tabella 6
60
Lutente ha compilato correttamente tutti i campi
Post-Condizioni
della scheda.
per il successo
Lutente ha salvato la scheda compilata.
L'utente ha arruolato un paziente che non soddisfa i
criteri di inclusione: il sistema avverte lutente che il
paziente non pu essere arruolato (et <18,
partecipazione ad altro studio)
Lutente non ha compilato tutti i campi della scheda
o alcuni campi in modo errato: il sistema evidenzia i
Post-Condizioni campi non corretti.
per il fallimento Lutente ha intenzione di chiudere la scheda prima
di completare linserimento di tutti i campi: il
sistema avverte lutente che non pu salvare una
scheda incompleta o errata.
Lutente non ha completato linserimento anche del
Questionario SF36 | Valutazione Medico | Indice
HAQ: Il sistema avverte lutente.
Evento
Lutente clicca su Nuovo Paziente
Innescante
Caso dUso (3a): Questionario SF36
Include Caso dUso (3b): Valutazione Medico
Caso dUso (4a): Indice HAQ
Tabella 7
61
Lutente stato riconosciuto dal sistema.
Pre-Condizioni
Il paziente stato precedentemente arruolato.
Lutente ha compilato correttamente tutti i campi
Post-Condizioni
della scheda.
per il successo
Lutente ha salvato la scheda compilata.
Lutente non ha compilato tutti i campi della scheda
o alcuni campi in modo errato: il sistema evidenzia i
campi non corretti.
Lutente ha intenzione di chiudere la scheda prima
Post-Condizioni di completare linserimento di tutti i campi: il
per il fallimento sistema avverte lutente che non pu salvare una
scheda incompleta o errata.
Lutente non ha completato linserimento anche del
Valutazione Medico | Indice HAQ | Rilevazione
Costi: Il sistema avverte lutente.
Evento Lutente clicca sul pulsante di inserimento di Visita
Innescante FollowUp
Caso dUso (4d): Inserimento Visita Follow-Up 3 Mesi
Caso dUso (4e): Inserimento Visita Follow-Up 6 Mesi
Generalizza
Caso dUso (4f): Inserimento Visita Follow-Up 9 Mesi
Caso dUso (4g): Inserimento Visita Follow-Up 12 Mesi
Caso dUso (3b): Valutazione Medico
Include Caso dUso (4a): Indice HAQ
Caso dUso (4b): Rilevazione Costi
Richiede Caso dUso (3): Inserimento visita inizio studio
Tabella 8
62
Attore Primario Utente del centro attivo
Lutente stato riconosciuto dal sistema.
Il paziente stato precedentemente arruolato.
Il paziente possiede una:
(4d) Visita inizio studio completa.
Pre-Condizioni (4e): Visita inizio studio completa.
(4e): Scheda di Follow-Up a 3 Mesi completa.
(4f): Visita inizio studio completa.
(4f): Scheda di Follow-Up a 3 Mesi completa.
(4f): Scheda di Follow-Up a 6 Mesi completa.
Lutente ha compilato correttamente tutti i campi della
Post-Condizioni
scheda.
per il successo
Lutente ha salvato la scheda compilata.
Lutente non ha compilato tutti i campi della scheda
o alcuni campi in modo errato: il sistema evidenzia i
campi non corretti.
Lutente ha intenzione di chiudere la scheda prima
di completare linserimento di tutti i campi: il
Post-Condizioni
sistema avverte lutente che non pu salvare una
per il fallimento
scheda incompleta o errata.
Lutente non ha completato linserimento anche del
Valutazione Medico | Indice HAQ | Rilevazione
Costi: Il sistema avverte lutente.
63
Attore Primario Utente del centro attivo
Lutente stato riconosciuto dal sistema.
Il paziente possiede la scheda Visita inizio studio e
Pre-Condizioni
tutte le schede di Follow-Up compilate
correttamente
Lutente ha compilato correttamente tutti i campi
Post-Condizioni
della scheda.
per il successo
Lutente ha salvato la scheda compilata.
Lutente non ha compilato tutti i campi della scheda
o alcuni campi in modo errato: il sistema evidenzia i
campi non corretti.
Lutente ha intenzione di chiudere la scheda prima
Post-Condizioni di completare linserimento di tutti i campi: il
per il fallimento sistema avverte lutente che non pu salvare una
scheda incompleta o errata.
Lutente non ha completato anche linserimento di
Valutazione Medico | Indice HAQ | Rilevazione Costi
| Questionario SF36: Il sistema avverte lutente.
Evento Lutente clicca sul pulsante di inserimento di Visita
Innescante Follow-Up 12 Mesi
Richiede Caso dUso (4e): Inserimento visita Folow-Up9mesi
Caso dUso (3a): Questionario SF36
Caso dUso (3b): Valutazione Medico
Include
Caso dUso (4a): Indice HAQ
Caso dUso (4b): Rilevazione Costi
Tabella 10
64
Caso dUso (3a): Questionario SF36
65
Caso dUso (3b): Valutazione Medico
66
Caso dUso (4a): Indice HAQ
67
Caso dUso (4b): Rilevazione Costi
68
Attore Primario Utente del centro attivo
69
Attore Primario Utente del centro attivo
Lutente stato riconosciuto dal sistema.
Pre-Condizioni Il paziente possiede almeno una scheda di Visita
inizio studio.
Post-Condizioni Il sistema non permette di inserire altre schede per il
per il successo paziente ritirato
Post-Condizioni L'utente compila una scheda diversa da Follow-Up
per il fallimento a 12 Mesi
Lutente seleziona una scheda di Follow-Up a 12
Evento
mesi prima di aver compilato le precedenti a 3/6/9
Innescante
mesi
Tabella 17
70
Caso dUso (8a): Totale Pazienti
71
Caso dUso (9): Elenco Pazienti del centro
72
Lutente clicca sullicona di esportazione in
Evento
CSV oppure
Innescante
Lutente clicca sullesportazione Stampa\PDF
Estende Caso dUso (9): Elenco Pazienti
Tabella 22
73
Post-Condizioni
Lutente visualizza la lista aggiornata
per il successo
Post-Condizioni L'utente clicca su una scheda che non ancora
per il fallimento stata compilata
Evento
Lutente clicca sullesportazione Stampa\PDF
Innescante
Estende Caso dUso (9): Elenco Pazienti
Tabella 24
74
3.4 SCENARI
Scenario Alternativo 1
Scenario Alternativo 2
Scenario Alternativo 3
Scenario Alternativo 4
75
Scenario di Base Caso dUso (2): Autenticazione
Scenario Alternativo 1
4.1 Il sistema valida i dati inseriti e riconosce la tipologia di utente: Utente del
Centro Attivo
4.2 Il sistema mostra lElenco Pazienti del Centro Attivo
76
5. Il sistema verifica i dati, visualizza lIdentificativo numerico del nuovo
paziente inserito e aggiorna lElenco Pazienti
Scenario Alternativo 1 (insuccesso)
4.1 Lutente compila in parte o in nessuna parte la scheda e clicca sul
pulsante cancella
4.2 Il sistema avverte che tutti i dati inseriti saranno azzerati e attende
conferma
4.3 Lutente conferma la cancellazione
Scenario Alternativo 2
4.1a Lutente commette degli errori nella compilazione e clicca sul pulsante
salva
4.2a Il sistema verifica i dai non corretti e attente la correzione prima del
salvataggio
4.3a Lutente corregge\completa la scheda e clicca sul pulsante salva
4.4a Ripeti 5
Tabella 27
77
Scenario Alternativo 1
2.3 ripeti 3
Scenario Alternativo 4
4.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
4.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
4.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
4.4a Ripeti 5
Tabella 29
78
Scenario di Base Caso dUso (4e): Inserim. Visita FUP 6 mesi
Scenario Alternativo 1
2.3 ripeti 3
Scenario Alternativo 4
79
4.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
4.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
4.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
4.4a Ripeti 5
Tabella 30
Scenario Alternativo 1
2.3 ripeti 3
80
Scenario Alternativo 3 (insuccesso)
3.1 Lutente compila in parte o in nessuna parte la scheda e clicca
sul pulsante cancella
3.2 Il sistema avverte che tutti i dati inseriti saranno azzerati e
attende conferma
3.3 Lutente conferma la cancellazione
Scenario Alternativo 4
4.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
4.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
4.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
4.4a Ripeti 5
Tabella 31
Scenario Alternativo 1
81
2.3 Lutente clicca su Inserimento Visita Follow-Up 12 mesi / Conclusione
Studio
2.3 ripeti 3
Scenario Alternativo 3
4.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
4.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
4.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
4.4a Ripeti 5
Tabella 32
82
5. Lutente chiude la sotto-finestra e continua con la compilazione
della scheda principale (Inizio Studio o FUP 12)
Scenario Alternativo 2 (insuccesso)
3.1 Lutente compila in parte o in nessuna parte la scheda e clicca
sul pulsante cancella
3.2 Il sistema avverte che tutti i dati inseriti saranno azzerati e
attende conferma
3.3 Lutente conferma la cancellazione e ripeti 5
Scenario Alternativo 2
3.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
3.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
3.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
3.4a Ripeti 5
Tabella 33
83
Scenario di Base Caso dUso (4b): Rilevazione Costi
Scenario Alternativo 1
2.3 ripeti 3
Scenario Alternativo 3
4.1a Lutente commette degli errori nella compilazione e clicca sul
pulsante salva
4.2a Il sistema verifica i dai non corretti e attende la correzione
prima del salvataggio
84
4.3a Lutente corregge\completa la scheda e clicca sul pulsante
salva
4.4a Ripeti 5
Tabella 36
Scenario Alternativo 1
Scenario Alternativo 1
85
Scenario di Base Caso dUso (7): Interrompi Studio
Scenario Alternativo 3
4.1a Lutente commette degli errori nella compilazione e clicca sul pulsante
salva
4.2a Il sistema verifica i dai non corretti e attende la correzione prima del
salvataggio
86
4.3a Lutente corregge\completa la scheda e clicca sul pulsante salva
4.4a Ripeti 5
Tabella 39
Scenario Alternativo 1
2.1 Lutente clicca sulla voce Lista Centri nel men laterale
2.2 ripeti 3
Tabella 40
3.1 Lutente clicca sulla voce Lista Centri nel men laterale
3.2 ripeti 3
Tabella 41
87
2. Il sistema valida i dati inseriti e riconosce la tipologia di utente: Referente
del Progetto e Soggetto Sponsor
3. Il sistema mostra la Lista dei Centri Attivi
5. Il sistema mostra la Tabella del Totale Pazienti sopra la Lista dei Pazienti
Scenario Alternativo 1
3.1 Lutente clicca sulla voce Lista Centri nel men laterale
3.2 ripeti 3
Tabella 42
Scenario Alternativo 1
88
Scenario di Base Caso dUso (9b): Visualizza scheda Paziente
Scenario Alternativo 1
Scenario Alternativo 2
3.4 Ripeti 4
89
Scenario di Base Caso dUso (9c): Esporta Scheda Paziente
Scenario Alternativo 1
2.3 Ripeti 3
Scenario Alternativo 2
3.1 Lutente clicca su una Scheda di Follow-Up 3/6/9/12 compilata
3.2 Il sistema mostra una pagina contenente licona di una scheda Follow-
Up 3/6/9/12 e licona di una scheda di Rilevazione Costi
3.4 Ripeti 4
90
3.5 Diagrammi di Sequenza
91
Figura 8: Autenticazione
92
Figura 9: Inserimento visita inizio studio
93
Figura 10: Inserimento visita Follow-up 3 Mesi
94
Figura 13: : Inserimento visita Follow-up 12 Mesi
95
Figura 14: Alternativa 1 Questionario SF36
96
Figura 15: Alternativa 2 Questionario SF36
97
Figura 16: Alternativa 1 Valutazione Medico
98
Figura 18: Alternativa 1 Indice HAQ
99
Figura 20: Alternativa 1 Rilevazione Costi
100
Figura 22: Elimina Paziente
101
Figura 23: Interrompi studio
102
Figura 25: Totale Pazienti
103
Figura 28: Esporta Elenco Pazienti
104
3.6 Progetto De i Dati
105
appartenti alla View del sistema; mentre le classi controller
sono state tradotte in Action.
In relazione alle classi entity, invece, abbiamo dei bean.
Tali oggetti Java sono a loro volta mappati nel database
relazionale derivante, attraverso lutilizzo di Hibernate, che
permette allapplicativo di diventare totalmente indipendente al
tipo di database utilizzato.
106
3.6.1 Diagramma della dipendenza dei Dati
107
3.6.2 Modello del Database
108
3.6.3 Dettaglio Dei Dati
account
Identificativo univoco di
id Primaria INT un account per laccesso
al sistema
centro VARCHAR Codice univoco del centro
109
pazienti
Identificativo univoco di
id Primaria INT
un paziente
Codice univoco di un
Codice VARCHAR
paziente
Sesso del paziente
Sesso CHAR
(0 uomo, 1 donna)
Data di nascita del
DataNascita VARCHAR
paziente
Attivit Lavorativa
AttivitaLav VARCHAR (Manuale, dufficio,
pensionato, ecc)
Data inclusione del
DataInclusioneDB TIMESTAMP
paziente nel database
Tabella 48
Codice univoco di
ATC7 Primaria VARCHAR identificazione di un
farmaco
Descrizione del
Desc_ATC7 VARCHAR
farmaco\principio attivo
Tabella 49
110
farmaciFollowUp
Identificativo univoco di
id Primaria INT farmaco per una scheda
Follow-Up
Codice univoco di un
idPaziente VARCHAR
paziente
Codice univoco di
farmaco VARCHAR identificazione di un
farmaco
dose VARCHAR Dose somministrata
Frequenza di
freqSomm VARCHAR
somministrazione
Stato di somministrazione
stato VARCHAR
nella terapia
Nuova Dose
doseNew VARCHAR
somministrata
Nuova frequenza di
freqSommNew VARCHAR
somministrazione
Altra nuova frequenza di
freqSommAltro VARCHAR
somministrazione
Identificativo del tipo di
nScheda VARCHAR
scheda follow-up 3,6,9,12
Numero progressivo
idProg VARCHAR che indica l'ordine
nella lista dei farmaci
111
Codice Identificativo di
typeFarm VARCHAR
una tipologia di farmaco
Tabella 50
schedareclutamento
Identificativo univoco di
Id Primaria INT
una scheda reclutamento
Identificativo univoco di
IdPaziente VARCHAR
un paziente
Data di arruolamento del
DataRecl VARCHAR
paziente nello studio
Centro VARCHAR Codice univoco del centro
Data della prima diagnosi
DataPrimaAR VARCHAR
di AR
DataUltimoAR VARCHAR Data ultimo controllo AR
Flag per lattivazione
dellinserimento di
CoinvExtraMusc VARCHAR ulteriori dati sul
coinvolgimento
extrarticolare
Tipo di coinvolgimento
TipoCoinvExMusc VARCHAR
extrarticolare
Flag per lattivazione
dellinserimento di
Comorbilita VARCHAR
ulteriori dati su
comorbilit rilevanti
112
Tipo di comorbilit
TipoComorbilita VARCHAR
rilevanti
fansFar() VARCHAR FANS e Analgesici
113
Punteggio del grado di
attivit della artrite su
VASMed VARCHAR analogica visiva del
dolore (VAS) espresso
dal medico
Punteggio del grado di
attivit della artrite
VASPaz VARCHAR espresso dal paziente
su scala visu-
analogica
VARCHAR Punteggio del grado
del dolore espresso
VASDol
dal paziente su scala
visu-analogica
VARCHAR Punteggio dello stato di
salute complessivo su
GH
scala visu-analogica
espresso dal paziente
VARCHAR Misura della velocit di
VES eritrosedimentazione
(VES)
VARCHAR Punteggio del calcolo del
DAS28
DAS28
PCR VARCHAR Livello di PCR
114
VARCHAR Valore degli anticorpi
AntiCCP
Anti-CCP
VARCHAR Valore degli anticorpi
Anticorpi
antinucleo
VARCHAR Valore degli anticorpi
AntiDNA
anti-DNA
VARCHAR Indicatore del livello di
AST
transaminasi AST
VARCHAR Indicatore del livello di
ALT
transaminasi ALT
VARCHAR Punteggio del calcolo
HAQ
dellindice HAQ
VARCHAR Punteggio del calcolo per
SF36ISF lindice ISF del
questionario SF36
VARCHAR Punteggio del calcolo per
SF36ISM lindice ISM del
questionario SF36
flagCompleto() VARCHAR Flag di scheda completa
115
VARCHAR Altri trattamenti
brmFarAltro()
precedenti con DMARD
VARCHAR Altri trattamenti attuali
dmardAttFarAltro()
con DMARDs
Tabella 51
SchedaAttivitaAR
Identificativo univoco di
una scheda di attivit AR
Id Primaria INT
per tutte le schede
Follow-UP
Codice univoco di un
IdPaziente
paziente
RigMatt VARCHAR =schedareclutamento
116
Anticorpi VARCHAR =schedareclutamento
GH VARCHAR =schedareclutamento
117
SchedaRilevamentoCosti
Identificativo univoco di
idSchedaRilCosti Primaria INT una scheda di
rilevamento costi
VARCHAR Codice univoco di un
IdPaziente
paziente
VARCHAR Codice progressivo
univoco che identifica una
codiceScheda
scheda rilevamento costi
di 3/6/9/12
VARCHAR FLAG attivazione
ospedalizzazioni
ospedalizzazioni
VARCHAR Numero di
numOsped
ospedalizzazioni
centro VARCHAR Codice univoco del centro
VARCHAR Motivo di
mot()
ospedalizzazione
tipoOspe() VARCHAR Tipo di ospedalizzazione
118
VARCHAR Tipo
tipoVis()
visite/prestazioni/esami
VARCHAR Costo in euro di
spesa()
visite/prestazioni/esami
VARCHAR Situazione lavorativa del
lavoro
paziente
lavoroAltro VARCHAR Altro tipo di lavoro
119
VARCHAR Numero di assenze
numAss
lavorative
VARCHAR Situazione lavorativa del
lavoroCar
Caregiver
VARCHAR Altro tipo di lavoro del
lavoroAltroCar
Caregiver
VARCHAR Ente lavorativo (Pubblico
enteLavCar
o Privato) del Caregiver
VARCHAR Ore lavorative (Part o Full
nOreLavCar
time)
VARCHAR Numero di ore lavorative
tempLavCar
part-time
VARCHAR Flag Attivazione Pensione
pensioneCar
Caregiver
VARCHAR Situazione lavorativa negli
sitAttLavCar
utlimi 3 mesi Caregiver
VARCHAR Data di
quandoCar cambio\trovato\perso
lavoro per il Caregiver
VARCHAR Situazione lavorativa
sitPreLavCar
precedente del Caregiver
VARCHAR Altra situazione lavorativa
sitPreLavAltroCar
precedente del Caregiver
VARCHAR FLAG attivazione
camSitLavCar cambiamento situazione
lavorativa Caregiver
VARCHAR Assenza o sospensione
assLavCar
lavorativa Caregiver
120
VARCHAR Numero di assenze
numAssCar
lavorative Caregiver
assistito VARCHAR FLAG presenza Caregiver
allegato1
Identificativo univoco di
un questionario per il
idAllegato1 Primaria INT
calcolo della Valutazione
da parte del Medico
VARCHAR Codice univoco di un
idPaziente
paziente
VARCHAR Identificativo del tipo di
nScheda
scheda follow-up 3,6,9,12
scapoloOmerale() VARCHAR Scapolo omerale dolente
121
polso() VARCHAR Polso dolente
VARCHAR Metacarpo-falangee
met()
dolenti
VARCHAR Interfalengee prissimali
int()
dolenti
VARCHAR Scapolo omerale
TumScapOme()
tumeffatto
TumGomito() VARCHAR Gomito tumeffatto
VARCHAR Metacarpo-falangee
TumMet()
tumetaffi
VARCHAR Interfalengee prissimali
TumIntPri()
tumefatte
TotDol() VARCHAR Totale articolazioni dolenti
allegato2
Identificativo univoco di
idAllegato2 Primaria INT un scheda per il calcolo
dellIndice HAQ
Codice univoco di un
idPaziente VARCHAR
paziente
122
Identificativo del tipo di
nScheda VARCHAR
scheda follow-up 3,6,9,12
Dom() VARCHAR Valore del dolore
Punteggio totale
PuntTot VARCHAR
dellindice HAQ
Tabella 55
allegato3
Identificativo univoco di
idAllegato3 Primaria INT una scheda per il calcolo
del questionario SF36
Codice univoco di un
idPaziente VARCHAR
paziente
Identificativo del tipo di
nScheda VARCHAR
scheda follow-up 3,6,9,12
Dom() VARCHAR Risposte al questionario
Tabella 56
123
Capitolo 4:
Analisi delle tecnologie impiegate
124
semplice l'installazione su tutti i servlet container conformi
alle specifiche Sun;
i diversi ruoli dell'applicazione sono affidati a diversi
componenti. Ci consente di sviluppare codice modulare e
pi facilmente riutilizzabile;
possibile sviluppare in parallelo le varie parti
dell'applicazione, view (JSP/HTML) e logica di business
(Java) sfruttando al meglio le conoscenze dei componenti
del team di sviluppo permettendo di impiegare sviluppatori
meno esperti e anche con poche conoscenze di Java per la
realizzazione delle view, lasciando agli sviluppatori Java pi
esperti il compito di concentrarsi sulla realizzazione della
business logic.
125
4.1 Larchitettura J2EE (Java 2 Enterprise Edition)
Componenti:
Il modello di programmazione prevede lo sviluppo di
soluzioni utilizzando componenti a supporto delle quali fornisce
quattro tecnologie fondamentali:
Enterprise Java Beans;
Servelet ;
Java Server Pages ;
Applet
126
La seconda, servlet, consente la costruzione di servizi web
altamente performanti ed in grado di funzionare sulla maggior
parte dei web server ad oggi sul mercato.
Contenitori:
Il secondo strato rappresentato dai contenitori ovvero
supporti alle tecnologie appartenenti al primo strato logico della
architettura. La possibilit di costruire contenitori rappresenta la
caratteristica fondamentale del sistema in quanto fornisce
ambienti scalari con alte performance.
Connettori:
Infine i connettori consentono alle soluzioni basate sulla
tecnologia J2EE di preservare e proteggere investimenti in
tecnologie gi esistenti fornendo uno strato di connessione verso
applicazioni-server o middleware di varia natura: dai database
relazionali con JDBC (Java DataBase Connectivity) fino ai server
LDAP (Lightweight Directory Access Protocol) con JNDI (Java
Naming and Directory Interface).
127
Gli application-server compatibili con questa tecnologia
riuniscono tutti e tre gli strati in un una unica piattaforma
standard e quindi indipendente dal codice proprietario,
consentendo lo sviluppo di componenti in grado di girare in
qualunque container compatibile con J2EE indipendentemente
dal fornitore di software, e di interagire con una vasta gamma di
servizi pre-esistenti tramite i connettori.
128
4.2 I tre strati della piattaforma J2EE:
Lo Strato Client
Appartengono allo strato client le applicazioni che
forniscono allutente una interfaccia semplificata verso il mondo
enterprise e rappresentano quindi la percezione che lutente ha
della applicazione J2EE.
Tali applicazioni si suddividono in due classi di
appartenenza: le applicazioni web-based e le applicazioni non-
web-based.
129
Le prime sono quelle applicazioni che utilizzano il browser
come strato di supporto alla interfaccia verso lutente ed i cui
contenuti vengono generati dinamicamente da Servlet e Java
Server Pages o staticamente in HTML.
Le seconde (non-web-based) sono invece tutte quelle
basate su applicazioni stand alone che sfruttano lo strato di rete
disponibile sul client per interfacciarsi direttamente con la
applicazione J2EE senza passare per ilWeb-Tier.
Nel caso di Struts, e nello specifico di Dose Web, il tipo di
client il browser web.
Lo Strato Web
Lo strato web consente allo strato client di comunicare e
interagire con la logica dellapplicazione, la quale risiede su altri
strati. In web applications tradizionali, non raro che parte della
logica sia presente in questo strato, ma in applicazioni di scala
pi ampia, a livello enterprise, il web tier agisce come
traduttore effettuando un mapping delle richieste HTTP verso
invocazioni di servizi sullo strato successivo, ilmiddle tier.
Il web tier il collante che lega le applicazioni client al
nucleo fondamentale di sistemi business. I componenti che
risiedono nello strato web consentono agli sviluppatori di
estendere le funzionalit fondamentali di un web service. Nel
caso di Struts, ci avviene tramite coponenti dellinfrastruttura
che vanno in esecuzione allinterno di un servlet container.
Lo strato business
Nellambito di una applicazione enterprise, questo lo
strato che fornisce servizi specifici: gestione delle transazioni,
controllo della concorrenza, gestione della sicurezza, ed
130
implementa inoltre logiche specifiche circoscritte allambito
applicativo ed alla manipolazione dei dati. Mediante un
approccio di tipo Object Oriented possibile decomporre tali
logiche o logiche di business in un insieme di componenti ed
elementi chiamati business object. La tecnologia fornita da
Sun per implementare i business object quella che in
precedenza abbiamo indicato come EJBs(Enterprise Java Beans).
Tali componenti si occupano di:
Ricevere dati da un client, processare tali dati (se
necessario), inviare i dati allo strato EIS per la loro
memorizzazione su base dati;
Acquisire dati da un database appartenente allo strato EIS,
processare tali dati (se necessario), inviare tali dati al
programma client che ne abbia fatto richiesta.
131
4.2.1 Struts e il Web Tier
132
4.2.2 Java Servlet e Java Server Pages
133
momento del suo istanziamento, sino al momento della sua
terminazione.
Nel contesto della piattaforma Java, la tecnologia JSP
correlata con quella dei servlet. All'atto della prima invocazione,
le pagine JSP vengono infatti tradotte automaticamente da un
compilatore JSP in servlet. Una pagina JSP pu quindi essere
vista come una rappresentazione ad alto livello di un servlet. Per
via di questa dipendenza concettuale, anche l'uso della
tecnologia JSP richiede la presenza, sul Web server, di un servlet
container, oltre che di un server specifico JSP detto motore JSP
(che include il compilatore JSP); in genere, servlet container e
motore JSP sono integrati in un unico prodotto come ad esempio
Apache Tomcat che svolge entrambe le funzioni.
134
4.3 Utilizzare un framework
135
4.4 Design Patterns in J2EE
136
Figura 37: Business Tier Patterns
137
4.4.1 Il pattern MVC (Model - View - Controller)
138
Figura 39: Model 1
139
Figura 40: Model 2
140
View-Controller) Secondo questo pattern, i componenti di
un'applicazione vengono logicamente classificati a seconda che
siano gestori di logiche di business e di accesso ai dati (model),
gestori di visualizzazione dati e dell'input dell'utente (viewer o
view) e gestori del flusso di controllo complessivo
dell'applicazione (controller).
Laccoppiamento tra i vari livelli minimo, con evidenti
vantaggi in termini di riusabilit, manutenibilit, estensibilit e
modularit.
Di seguito presentato un diagramma di interazione che
evidenza le responsabilit dei tre componenti:
Il Model:
Analizzando la figura precedente, si evince che il core
dell'applicazione viene implementato dal Model, che incapsulando
lo stato dell'applicazione definisce i dati e le operazioni che
possono essere eseguite su questi. Quindi definisce le regole di
business per l'interazione con i dati, esponendo alla View ed al
Controller rispettivamente le funzionalit per l'accesso e
141
l'aggiornamento. Per lo sviluppo del Model quindi vivamente
consigliato utilizzare le tipiche tecniche di progettazione object
oriented al fine di ottenere un componente software che
astragga al meglio concetti importati dal mondo reale. Il Model
pu inoltre avere la responsabilit di notificare ai componenti
della View eventuali aggiornamenti verificatisi in seguito a
richieste del Controller, al fine di permettere alle View di
presentare agli occhi degli utenti dati sempre aggiornati.
La View:
La logica di presentazione dei dati viene gestita solo e
solamente dalla View. Ci implica che questa deve
fondamentalmente gestire la costruzione dell' interfaccia grafica
(GUI) che rappresenta il mezzo mediante il quale gli utenti
interagiranno con il sistema. Ogni GUI pu essere costituita da
schermate diverse che presentano pi modi di interagire con i
dati dell'applicazione.
Inoltre la View delega al Controller l'esecuzione dei
processi richiesti dall'utente dopo averne catturato gli input e la
scelta delle eventuali schermate da presentare.
Il Controller:
Definisce il meccanismo mediante il quale il Model e la
View comunicano. Realizza la connessione logica tra linterazione
dellutente con linterfaccia applicativa e i servizi della business-
logic nel back end del sistema. E responsabile della scelta di
una tra molteplici viste dello stesso modello, in base al tipo di
dispositivo utilizzato dallutente per accedere al sistema ma
anche in realzione alla localizzazione geografica dellutente
142
stesso. Una qualsiasi richiesta (request) fatta al sistema viene
acquisita dal Controller che individua allinterno del Model il
gestore della richiesta (request handler). Ottenuto il risultato
dellelaborazione (response), il Controller stesso determina a
quale View passare i dati per la presentazione degli stessi
allutente.
143
4.4.2 Struts e il pattern MVC
144
Questo file descritto in dettaglio nelle specifiche delle
Servlet Java, essendo un file di configurazione necessario per
tutte le web application, non solo per quelle realizzate con il
framework Struts. I web container utilizzano il descrittore per
caricare e configurare la web-application quando questo viene
avviato.Il file viene letto allavvio del Web container e specifica
dove si trova la nostra applicazione e come deve essere
eseguita, in altre parole il file specifica ogni richiesta dove deve
andare.
Tutti gli elementi che costituiscono il framework sono
raggruppati in otto principali Package Top-Level:
145
Actions: contiene le classi Action rimanenti, quali la
DispatchAction, che pu essere utilizzata o estesa dalla
propria applicazione;
Config: include le classi di configurazione che sono
rappresentazioni presenti in memoria del file di
configurazione di Struts;
Taglib: contiene le classi tag handler per le tag library di
Struts;
Tiles: contiene le classi usate dal framework Tiles;
Upload: include classi utilizzate per lupload e il
download del file dalfilesystem locale con un browser;
Util: contiene classi di utilit generale utilizzate
dallintero framework;
Validation: contiene le classi di estensione, specifiche
per Struts, utilizzate dal framework quando si effettua il
deploy del validation. Le classi e le interfacce vere e
proprie di Validation si trovano nel package commons,
che separato da Struts.
146
Figura 43: Flusso elaborativo di una applicazione sviluppata con struts
147
4.5 Hibernate
148
L'architettura di Hibernate, permette all'applicazione di
astrarre dai dettagli delle API JDBC/JTA e lascia che se ne occupi
Hibernate.
Nella figura seguente rappresentata lArchitettura
completa:
SessionFactory (net.sf.hibernate.SessionFactory):
una cache immutabile e "thread-safe" di mappaggi
compilati per un database singolo. Allo stesso tempo un
factory per oggetti Session e un client di
ConnectionProvider. Potrebbe contenere una cache di
secondo livello opzionale riutilizzabile tra le transazioni, sia
a livello di processo, sia a livello di cluster.
149
conversazione tra l'applicazione e il contenitore
persistente. Incapsula una connessione JDBC. un factory
per oggetti Transaction. Mantiene una cache obbligatoria
(di primo livello) per gli oggetti persistenti, usata quando si
naviga il grafo degli oggetti o si ricercano oggetti per
identificatore.
Transaction (net.sf.hibernate.Transaction): un
oggetto a thread singolo, di corta durata, usato
dall'applicazione per specificare unit di lavoro atomiche.
Separa le applicazioni dalla transazione JTA, CORBA o
JDBC sottostante. Una Session potrebbe estendersi lungo
varie Transaction in certi casi.
150
Connection Provider
(net.sf.hibernate.connection.ConnectionProvider):
Un factory (e pool) di connessioni JDBC. Astrae le
applicazioni dai dettagli dei sottostanti Datasource o
DriverManager. Non viene esposta all'applicazione, ma pu
essere estesa/implementata dagli sviluppatori.
TransactionFactory
(net.sf.hibernate.TransactionFactory): Un factory per
istanze di Transaction. Non viene esposta all'applicazione,
ma pu essere estesa/implementata dagli sviluppatori. In
un'architettura "leggera", l'applicazione aggira le API
Transaction/TransactionFactory e/o ConnectionProvider per
parlare direttamente con JTA o JDBC.
151
4.6 Ambiente di Sviluppo e Deploy
152
componenti software ideate per uno specifico scopo, per esempio
la generazione di diagrammi UML.
Nella versione base possibile programmare in Java,
usufruendo di comode funzioni di aiuto quali: completamento
automatico, suggerimento dei tipi di parametri dei metodi,
riscrittura automatica del codice in caso di cambiamenti nelle
classi.
Essendo scritto in Java, Netbeans IDE disponibile per
tutte le piattaforme. La licenza di riferimento per Netbeans IDE
la Common Development and Distribution License (CDDL),
licenza open source sviluppata da Sun Microsystems che
permette l'utilizzo del codice sorgente come base per la
creazione di altri programmi anche proprietari, richiedendo solo il
rilascio delle modifiche del codice sotto licenza CDDL.
Con oltre 5 milioni di download di NetBeans IDE sino ad
oggi, e oltre 100,000 sviluppatori che partecipano, il progetto
netbeans.org fiorente. Ogni mese contribuiscono ed usano
NetBeans visitatori di oltre 130 diversi paesi.
153
accorciare (non ancora completamente) la distanza tra questo
DBMS e i grandi concorrenti quali IBM DB2, Oracle, Microsoft
SQL Server e Sybase ma soprattutto permettono a MySql di
competere sul piano delle caratteristiche avanzate come i
triggers, le viste, le stored procedures, i cursori.
154
Capitolo 5: Manuale dUso
5.1 Interfaccia
155
5.2 Pulsanti
156
Permette la stampa dellelenco pazienti o CRF
visualizzate
Tabella 57
157
5.3 Login e Logout
158
Se lautenticazione si conclusa con successo, nel caso di utente
Medico o Farmacista verr mostrato lElenco Pazienti contenente
tutti e soli i pazienti appartenenti al centro a cui lutente
afferisce. I pazienti sono elencati per Id incrementale (6) con
affianco lo stato delle sue CRF (7).
159
pazienti suddivisi per CRF (9). Nella parte superione
visualizzato il totale dei pazienti di tutti i centri suddivisi per CRF
(10).
160
5.4 Gesti one schede:
Inserimento \ Visualizzazione \ Stampa
161
Nellinserimento di determinate schede richiesto di
compilare anche gli allegati indicati con il simbolo (14). Cliccando
sul simbolo si apre unaltra finestra (15) contenente il
questionario da compilare e salvare. Il risultato del questionario
viene calcolato e inserito nella scheda principale (16).
162
Per visualizzare una scheda specifica scheda gi compilata
cliccare sullicona (17) nellElenco Pazienti.
Nella seguente figura si scelto ad esempio di visualizzare
la Visita Follow-Up a 3 Mesi del paziente n.32
163
Per la stampa una scheda sufficiente cliccare sullicona (18)
allinterno della scheda stessa.
Si aprir unanteprima (19) della scheda in formato A4 che
potr essere stampata su supporto cartaceo o memorizzata
come file PDF (20).
164
5.5 Gestione Pazienti:
Ricerca \ Elenco \ Cancellazione \ Esportazione
165
Per cancellare un paziente cliccare sullicona (28) nella
colonna Elimina Paziente sulla riga del paziente che si vuole
eliminare (27) e confermare loperazione (29).
166
5.6 Ottenere documentazione
167
Conclusioni e Sviluppi futuri
168
Glossario e Acronimi
A
Anti-TNF: Farmaco Anti-Tumor Necrosis Factor
Anamnesi: In medicina, l'anamnesi la raccolta dalla voce diretta del
paziente e/o dei suoi familiari (per esempio i genitori nel caso di un
lattante o di un bambino), di tutte quelle informazioni, notizie e
sensazioni che possono aiutare il medico a indirizzarsi verso una
diagnosi.
Anti-CCP: Anticorpi Anti Peptide Ciclico Citrullinato
AR: Artrite Reumatoide
ATC: acronimo di "Anatomical Therapeutic Chemical Classification
System". Sistema di Classificazione Anatomico Terapeutico e Chimico.
Viene usato per la classificazione sistematica dei farmaci ed
controllato dall'Organizzazione Mondiale della Sanit. L'ATC un
sistema di classificazione di tipo alfa-numerico che suddivide i farmaci
in base ad uno schema costituito da 5 livelli gerarchici
Autenticazione: Nel campo della sicurezza informatica il processo
tramite il quale un computer, un software o un utente , verifica la
corretta , o almeno presunta , identit di un altro computer, software o
utente che vuole comunicare attraverso una connessione.
C
Care-giver: letteralmente prestatore di cura, colui che da
assistenza ad una persona malata, pu essere un familiare o un
esterno.
CRF: Case Report Form
CSV: Comma Separated Values un formato di file basato su file di
testo utilizzato per l'importazione ed esportazione (ad esempio da fogli
elettronici o database) di una tabella di dati.
Client: Un computer collegato ad un server tramite una rete
informatica (locale o geografica) ed al quale richiede uno o pi servizi,
utilizzando uno o pi protocolli di rete un esempio di client hardware.
CPU: central processing unit. L'unit centrale di elaborazione di un
calcolatore elettronico, anche chiamata nella sua implementazione
fisica processore, uno dei due componenti principali della macchina di
von Neumann, il modello su cui sono basati la maggior parte dei
moderni computer.
D
DAS: Disease Activity Score (DAS)
E' calcolato secondo la formula:
DAS = 0.54 (RAI) + 0.065 (sw) + 0.33Ln(ESR) + 0.0072GH
dove:
RAI = Indice di Ritchie
SW= Numero di articolazioni tumefatte (44)
Ln(ESR) = Logaritmo naturale della VES (mm/ora)
169
GH = Stato di salute complessivo (scala visuo-analogica).
Il DAS applicabile a:
- valutazione della attivit di malattia in un determinato momento
(Elevata attivit di malattia >3.7, bassa attivit di malattia <2.4,
remissione <1.6),
- valutazione della modificazione nel tempo della attivit di malattia.
DAS28: L. Disease Activity Score 28 (DAS28)
E' calcolato secondo la formula:
DAS28 = 0.56 (t28) + 0.28 (sw28) + 0.70Ln(ESR) +
0.014GH
dove:
t28 = numero di articolazioni dolente su 28
sw28 = numero di articolazioni tumefatte su 28
Ln(ESR) = Logaritmo naturale della VES (mm/ora)
GH = Stato di salute complessivo (scala visuo-analogica)
Il DAS applicabile a:
- valutazione della attivit di malattia in un determinato momento
(Elevata attivit di malattia >5,1, bassa attivit di malattia <3,2,
remissione <2,6),
- valutazione della modificazione nel tempo della attivit di malattia.
DBMS: DataBase Management System sistema software progettato
per consentire la creazione e manipolazione efficiente di database
(ovvero di collezioni di dati strutturati) solitamente da parte di pi
utenti.
DMARDS: Disease Modifying AntiRheumatic Drugs, farmaci
antireumatici modificanti la malattia.
DOC: estensione dei file dei documenti di testo creati con il
programma Microsoft Office Word.
F
FANS: Farmaci antinfiammatori non steroidei. Medicinali che
combattono le infiammazioni e non contengono cortisone.
Follow-UP: visite periodiche di controllo, che hanno come scopo
principale quello di valutare l'evoluzione della malattia in relazione ad
un trattamento a cui il paziente viene sottoposto.
G
GH: Stato di salute complessivo (scala visuo-analogica). Il paziente
viene invitato ad esprimere un giudizio (punteggio) sul proprio stato di
salute generale, riferito al momento della valutazione, impiegando una
scala visuo-analogica simile a quella sopra riportata, dove 100
corrisponde al peggior stato di salute.
H
HAQ: Health Assessment Questionnaire, Questionario sviluppato per
valutare la disabilit nei pazienti con AR. Valuta la disabilit fisica e il
dolore.
HARD DISK: (anche chiamato disco rigido o disco fisso) un
dispositivo utilizzato per la memorizzazione a lungo termine dei dati in
un computer.
HTML: acronimo per Hyper Text Mark-Up Language, linguaggio di
marcatura per ipertesti) un linguaggio usato per descrivere la
struttura dei documenti ipertestuali disponibili nel World Wide Web
ossia su Internet. Tutti i siti web sono scritti in HTML, codice che viene
170
letto ed elaborato dal browser, il quale genera la pagina che viene
visualizzata sullo schermo del computer.
I
In-line: funzionalita che permette lattuarsi di una determinata
procedura in tempo reale che coincide con il click di un pulsante.
INTERNET: percepita come la pi grande rete telematica mondiale,
e collega alcune centinaia di milioni di elaboratori per suo mezzo
interconnessi. In realt nata nelle intenzioni dei suoi inventori come
"la" rete delle reti. Nell'arco di alcuni decenni oggi divenuta la rete
globale.
J
JAVA VIRTUAL MACHINE: detta anche JVM, la macchina virtuale
che esegue i programmi in linguaggio bytecode, ovvero i prodotti della
compilazione dei sorgenti Java. La JVM formalmente una specifica,
mantenuta da Sun Microsystems. Qualsiasi sistema che si comporti in
modo coerente con tale specifica sar quindi da considerarsi una
particolare implementazione della JVM.
Esistono implementazioni software per praticamente tutti i sistemi
operativi moderni, sia gratuite che commerciali. Inoltre, esistono
implementazioni speciali per particolari ambienti hardware/software
(per esempio telefoni cellulari e palmari), e persino implementazioni
hardware.
O
ODF: Il formato OpenDocument, abbreviazione di OASIS Open
Document Format for Office Applications (Formato OASIS Open
Document per Applicazioni da Ufficio), un formato aperto per file di
documento per l'archiviazione e lo scambio di documenti per la
produttivit di ufficio come documenti di testo (memo, rapporti e libri),
fogli di calcolo, diagrammi e presentazioni.
ODT: File ODT di tipo testo
P
PDF: Portable Document Format, un formato di file basato su un
linguaggio di descrizione di pagina sviluppato da Adobe Systems per
rappresentare documenti in modo indipendente dall'hardware e dal
software utilizzati per generarli o per visualizzarli.
POPUP: menu che appare sullo schermo quando l'utente seleziona un
oggetto sulla finestra. Tale menu appare generalmente nel punto in cui
si cliccato col mouse e scompare quando si seleziona un altro
controllo.
PROCESSORE: vedi CPU
R
RAM: acronimo di Random Access Memory, il supporto di memoria
su cui possibile leggere e scrivere informazioni con un accesso
"casuale", ovvero senza dover rispettare un determinato ordine, come
ad esempio avviene per un nastro magnetico.
S
Server: Un server (detto in italiano anche servente o serviente) una
componente informatica che fornisce servizi ad altre componenti
(tipicamente chiamate client) attraverso una rete. Si noti che il termine
server, cos come pure il termine client, possono essere riferiti sia alla
componente software che alla componente hardware.
171
SF 36: un questionario psicometrico generico. Valuta il livello di
attivit e la sensazione di benessere di ciascuno. Comprende 8 scale a
quesito multiplo (per un totale di 36 domande) che misurano i seguenti
domini di salute percepita:
1) attivit fisica;
2) limitazioni nelle attivit legate al proprio ruolo dovute a problemi di
salute fisica;
3) dolore fisico;
4) salute in generale;
5) vitalit (energia/affaticamento);
6) attivit sociali;
7) limitazioni nellattivit legata al proprio ruolo dovute a problemi
emotivi;
8) salute mentale (sofferenza psicologica e benessere psicologico).
V
VAS: Scala Analogica Visiva del dolore,
VAS dolore (0-100): il paziente viene invitato ad esprimere un
punteggio, mediante visualizzazione di una scala visuale, del grado del
dolore presente in quel giorno, al risveglio.
VAS pz: VAS attivit di malattia espresso dal paziente il quale viene
invitato ad esprimere un giudizio (punteggio) sul grado di attivit della
propria artrite, riferito al periodo degli ultimi 7 giorni, impiegando una
scala visuo-analogica simile a quella sopra riportata.
VAS med: VAS attivit di malattia espresso dal medico il quale
esprime un giudizio (punteggio) sul grado di attivit della artrite
osservata, riferendosi per confronto alla precedente rilevazione clinica.
La scala simile a quella sopra riportata
VES: l'acronimo di "velocit di eritro-sedimentazione"
Un esame del sangue introdotto in diagnosi intorno agli anni '20 del
secolo scorso. Nel sangue, i globuli rossi tendono a rimanere in
sospensione, separati gli uni dagli altri grazie alla carica negativa di
membrana che ostacola la formazione di aggregati (rouleaux). In
condizioni normali la componente proteica del plasma tale da
preservare la carica di superficie delle emazie. Al contrario, quando nel
corpo si instaurano processi flogistici, l'aumentata concentrazione
ematica di proteine tipiche dell'infiammazione (tra cui il fibrinogeno e
la proteina C reattiva) porta ad un indebolimento delle forze repellenti.
I globuli rossi, di conseguenza, tendono ad aggregarsi con formazione
di rouleaux ad alta tendenza a precipitare. Quanto pi grossolani
risultano tali ammassi, tanto pi rapida la sedimentazione.
La VES, per l'appunto, misura la velocit di sedimentazione delle
emazie nel plasma, in mm per ora, quando il campione di sangue viene
lasciato riposare in un'apposita pipetta.
172
Bibliografia
173
Allegati
174