UNIVERSITA’ DI PISA - FACOLTA’ DI INGEGNERIA Corso di Laurea in Ingegneria Biomedica Informatica Medica – Strumenti informatici per la medicina Maurizio Mangione Il framework BMF per lo sviluppo di applicazioni ICT in Life Science con esercitazioni e progetto pilota Informatica Medica - Parte II – il framework BMF 5 5 PREFAZIONE Questo libro è dedicato a coloro che vogliono imparare a realizzare un’applicazione web in ambito ICT - Life Science mediante l’uso del framework BMF. Il Bio Medical Framework (in seguito BMF) nasce da un’esperienza ventennale di sviluppo di software in vari ambiti di applicazione. I miei primi esperimenti per la realizzazione di framework in grado di sviluppare in automatico programmi per l’utente finale, furono eseguiti per lo sviluppo di applicazioni desktop, a cavallo tra gli anni ‘80 e ’90. Poi dalla metà degli anni ‘90 il WWW prese l’avvento anche nel mondo del lavoro (nel mondo universitario già si usava da alcuni anni) e iniziai così a realizzare applicativi con interfacce client web. Nel 2003, approdato nuovamente al CNR, come ricercatore presso l’Istituto di Fisiologia Clinica, pensai di progettare e realizzare un framework java che, grazie all’ingegneria del software ed all’open source, ci consentisse di abbattere alcuni costi di sviluppo e che agevolasse quei programmatori che fossero grandi conoscitori e gestori di base di dati ma che non conoscessero la programmazione ad oggetti. L’idea di base fu quella di: creare un sistema composto di moduli e livelli, ad interfacce, che mettano lo sviluppatore finale dinanzi alla possibilità di realizzare pagine web con la sola conoscenza approfondita del SQL, ed un minimo di HTML. Con la release 1 del BMF realizzammo il sistema di governo dell’ASL12 di Viareggio e dell’Istituto di Fisiologia Clinica del CNR di Pisa. Da allora la lista di progetti realizzati con successo si è ampliata enormemente ed ancora ad oggi scopriamo nuovi ambiti in cui la sua applicazione risulta vincente. Il framework BM (così come lo chiamavamo all’inizio) è dunque uno strumento che facilita la vita dello sviluppatore nel non dover riscrivere e testare grosse parti di codice per ottenere funzionalità che per lo più si equivalgono nel 30%-40% degli sviluppi di qualsiasi applicazione web in ambito ICT – Life Science (in alcuni casi la percentuale arriva anche al 100%). Il perché di questa statistica è strettamente legato al fatto che non esiste un framework che sia la panacea dello sviluppo software e che ci saranno sempre delle interfacce che necessitano di personalizzazioni soprattutto nella loro ergonomia d’uso. AG Informatica Medica - Parte II – il framework BMF 6 6 Il BMF è un software open source con licenza di distribuzione GNU Lesser General Public License – LGPL (che è una licenza di software libero creata dalla Free Software Foundation). Potrete accedere all’ambiente di sviluppo dal portale http://www.ftgm.it/bmf e, previa registrazione, potrete disporre sia del codice sorgente che di una macchina virtuale (immagine di virtual box) configurata per l’esecuzione di un’applicazione BMF completa di manuale ed esempi online. Il team. La realizzazione del BMF è stata possibile grazie alla collaborazione con Gianna Alberini, Cristina Salvatori e Giuseppe Augiero, primi attori rispettivamente sullo sviluppo del software, dei test-stress dell’interfaccia utente e della piattaforma sistemistica (2004), e Giuseppe Di Guglielmo, Crocifisso Muscio, Gavino Marras, Donatella Danti, Loredana Fortunato, analisti, progettisti e sviluppatori anch’essi di alcuni moduli del BMF, esperti conoscitori della tecnologia utilizzata. Ringrazio anche coloro che nel tempo si sono aggregati al gruppo di lavoro, e che durante l’uso del BMF hanno generato nuove necessità funzionali, poi testate ed utilizzate nella realizzazione di progetti di ricerca e/o prototipi sw per applicazione di protocolli di cura. Grazie quindi, anche a Gianni Maglione, Giuseppe Andrea L’Abbate, Anna Paola Pala, Mauro Micalizzi, Roberta Diciotti, Marco Paterni, Stefano Dalmiani, Mario Cossu, Andrea Trabucco, Federica Pieroni, Stefano Puzzuoli, Giancarlo Panichi, Paolo Marcheschi, Stefania Pieroni, Alessio Ciregia, Alessandro Mazzarisi, Andrea Boni, Gabriele Trivellini, Michele De Nes, Fabio De Petrillo, Alessandro Taddei, Tiziano Carducci, Emiliano Rocca, Andrea Gori, Giacomo Piccini, Fabrizio Conforti e Luc Zyw, colleghi anch’essi del CNR di Pisa e/o della Fondazione Toscana Gabriele Monasterio (Regione Toscana- CNR-Università toscane). Considerando che l’ innovazione tecnologica e funzionale è inarrestabile, concludo prefazione e ringraziamenti anticipandovi che ho pronto sul tavolo il progetto BMF “next generation”, la cui realizzazione conta su una vostra imminente partecipazione. AG Informatica Medica - Parte II – il framework BMF 7 7 INDICE 1. INTRODUZIONE..............................................................................11 1.1 Requisiti HW/SW.................................................................... 12 1.2 Le esigenze funzionali............................................................. 13 1.3 Oggetti astratti e template.................................................... 15 1.4 Login e sessione...................................................................... 19 2. GESTIONE DELLA SICUREZZA NEL BMF...........................................21 1.1 Transizioni sicure dei dati ...................................................... 21 1.2 Gestione delle Login/Password .............................................21 1.3 Cancellazione logica dei dati ................................................. 22 1.4 Gestione Utenti locali ............................................................ 23 1.5 Gestione Profili ...................................................................... 23 3. IL DATABASE DEL BMF ..................................................................24 1.1 Creazione e naming di una generica tabella..........................24 1.2 Naming degli altri oggetti del DB.......................................... 25 1.3 Tabelle del BMF...................................................................... 26 1.4 Tabelle per dataentry ............................................................ 34 1.5 Organizzazione tabelle BMF................................................... 35 1.6 Struttura Elenco Campi ......................................................... 37 1.7 Creazione jar per webapplication .......................................... 38 1.8 Uso della Session ................................................................... 40 1.9 Uso parametri in memoria .................................................... 43 1.10 Connessione a più database ................................................ 45 4. GESTIONE SITO..............................................................................47 1.1 Gestione (elenco)................................................................... 47 1.2 Ricerca e Gestione.................................................................. 50 1.3 Oggetti per profilo (ruolo)...................................................... 51 1.4 Duplica Profilo (ruolo)............................................................ 52 1.5 Navigazione........................................................................... 53 1.6 Log......................................................................................... 55 1.7 Reload.................................................................................... 57 AG Informatica Medica - Parte II – il framework BMF 8 8 1.8 File di configurazione............................................................. 58 1.9 Web XML................................................................................ 62 5. DATA ENTRY..................................................................................63 1.1 Data entry semplice .............................................................. 63 1.2 I campi obbligatori sono:........................................................ 63 1.3 I campi facoltativi sono:......................................................... 64 1.4 Data Entry Paginato - sottomenù e order by..........................71 1.5 Data Entry Paginato Semplice................................................ 74 1.6 Gestione Data Entry x Riga..................................................... 76 1.7 Gestione Data Entry con Sottomenù (pulsanti interni)...........79 6. RICERCA E VISUALIZZA...................................................................81 1.1 Help – Export Excel................................................................. 81 1.2 Help - Trucchi e altro.............................................................. 81 1.3 Report di dettaglio di un padre ............................................. 82 1.4 Colorare in modo differente dati di una vista.........................83 1.5 Inserire immagini al posto di dati in una vista .......................84 1.6 Ricerca di base....................................................................... 85 1.7 Ricerca e Modifica.................................................................. 88 1.8 Filtro Dinamico....................................................................... 89 1.9 Filtro confronto...................................................................... 91 1.10 Filtro confronto albero ........................................................ 94 1.11 Filtro base albero................................................................. 98 1.12 Visualizzazione per colonna............................................... 101 1.13 Visualizzazione per mese.................................................... 102 1.14 visualizzazione complessa.................................................. 104 7. GESTIONE QUESTIONARI.............................................................109 1.1 Tabelle.................................................................................. 109 1.2 Le servlet ............................................................................. 110 1.3 Visualizzazione Pagina Tabellone colorato ..........................112 8. ALBERI.........................................................................................118 1.1 Gestione (elenco) e Ricerca & Gestione................................118 1.2 Definizione Radici................................................................. 119 AG Informatica Medica - Parte II – il framework BMF 9 9 1.3 Strutture Radici.................................................................... 119 1.4 Tipi....................................................................................... 120 1.5 Duplica Tipo......................................................................... 120 1.6 Navigazione Gerarchie......................................................... 121 1.7 Navigazione Gerarchie (New)............................................... 124 1.8 Associa Link a Struttura........................................................ 124 1.9 Associa Link a Struttura (new)..............................................127 1.10 Clona abilitazione utente................................................... 128 1.11 Strutture e Link................................................................... 128 1.12 Conteggi per tipo................................................................ 129 1.13 Nodi senza padre................................................................ 129 1.14 Nodi senza figli................................................................... 130 1.15 Sicurezza: Abilita Utente-Struttura.....................................130 1.16 Sicurezza: Abilita Utente-Struttura (new)...........................133 1.17 Sicurezza: Abilita Struttura-Utente.....................................134 1.18 Database: Viste V_ALBERO_*............................................135 9. UTILITY.........................................................................................136 1.1 Chiamata di store procedure................................................136 1.2 Upload file ........................................................................... 137 1.3 Download file....................................................................... 138 1.4 Upload file multi folder........................................................ 138 1.5 Download file multi folder.................................................... 139 1.6 Salta sito.............................................................................. 139 1.7 Proxy.................................................................................... 139 10. GESTIONE DOCUMENTALE.........................................................143 1.1 1.2 1.3 1.4 Profili utente per la gestione documentale........................143 Oggetto tabella T_Documenti........................................... 144 BMServletGestioneDocumentale.......................................145 BMServletDocumentDownload......................................... 148 11. BMF ED IL MOTORE DI RICERCA NUTCH (*)................................150 1.1 Autenticazione, sessione e protocollo https.........................150 1.2 Download pagine dinamiche................................................151 1.3 Analisi integrazione indexer................................................. 151 AG Informatica Medica - Parte II – il framework BMF 10 10 1.4 Analisi integrazione searcher............................................... 152 1.5 Sviluppo integrazione crawler.............................................. 154 1.6 Files di configurazione.......................................................... 154 1.7 Httpclient plugin e libreria.................................................... 156 1.8 Sviluppo integrazione indexer..............................................157 1.9 Sviluppo integrazione searcher............................................ 158 1.10 BMFQueryFilter plugin..................................................... 158 1.11 BMSecurityLogin servlet.................................................. 159 1.12 Interfaccia Web............................................................... 160 1.13 BMF – Guida pratica all’uso del motore di ricerca .............162 12. QUICK START PER PRINCIPIANTI ...............................................165 1.1 Creazione di un Jar di progetto ............................................ 165 1.2 Gestione del TOMCAT .......................................................... 165 1.3 Accesso alla base di dati....................................................... 166 1.4 Generazione della LICENZA.................................................. 166 13. PROGETTO: “L’OSPEDALE CER”..................................................167 1.1 testo..................................................................................... 167 1.2 Soluzione.............................................................................. 172 14. DDL E DML ORACLE PER LA CREAZIONE E GESTIONE DEL BMF...203 1.1 TABELLE............................................................................... 203 1.2 indici e primary key.............................................................. 214 1.3 constraint............................................................................. 217 1.4 VIste..................................................................................... 224 1.5 funzioni................................................................................ 236 1.6 procedure............................................................................ 239 1.7 package................................................................................ 262 1.8 trigger................................................................................. 263 15. BIBLIOGRAFIA............................................................................273 1.1 Casi di Studio........................................................................ 273 1.2 Sitografia.............................................................................. 274 AG Informatica Medica - Parte II – il framework BMF 1. 11 11 INTRODUZIONE BMFramework (BMF) è un tool di sviluppo software che permette di realizzare applicazioni web dinamiche, ossia applicazioni costruite su uno o più database relazionali per la memorizzazione e la gestione dei dati di interesse. Attraverso le pagine web di tali applicazioni sarà possibile effettuare operazioni di: ricerca, visualizzazione e data entry sulle tabelle del database, per una completa gestione dei dati da parte dell’utente finale. Queste operazioni vengono eseguite tramite interfaccia web utilizzando un comune browser (Chrome, Safari, Internet Explorer, Mozilla Firefox, ecc.). BMF è un tool di sviluppo nato per facilitare il lavoro dello sviluppatore di software perché, per creare un nuovo applicativo, non è necessario saper programmare con uno specifico linguaggio ad oggetti (Java, C++, ecc.) ma è sufficiente conoscere in maniera approfondita il linguaggio SQL e le funzionalità del tool per poter ottenere rapidamente le maschere di gestione e visualizzazione dei dati, i pulsanti associati, eventuali rappresentazioni grafiche dei dati, e gli altri oggetti tipici di un sito web dinamico. Anche i controlli di integrità sui dati inseriti sono demandati al BMF, che li implementa lato client: utilizzando codice Javascript standard; lato server: utilizzando il naming richiesto e il linguaggio DDL del database. Nel seguito del libro troverete spesso la parola servlet; agli esperti di programmazione Java risulterà una parola nota, ma per tutti gli altri, si dovrà e si potrà considerare come se ci si riferisse alla parola template. Ad ogni servlet corrisponderà un template o GUI (Graphical User Interface), quindi noi potremo assumere che ogni volta che si parlerà di servlet del BMF, si starà facendo riferimento non solo alle funzionalità da essa implementate, lato server, ma anche all’interfaccia grafica (template) ad essa associata. Per chi volesse saperne di più, in rete ci sono decine di articoli che spiegano cosa sia un servlet (o una servlet come preferiscono alcuni autori), oltre ovviamente ai libri di testo Java. Basterà scrivere “servlet primi passi” in un qualunque motore di ricerca. In questo capitolo introdurremo le regole che gli elementi di un database BMF devono rispettare, relative in particolare alle convenzioni sui nomi (naming) di tabelle, campi, relazioni, viste, ecc. Pertanto, partiremo dall’ipotesi di un database relazionale correttamente progettato dal punto di vista delle entità e delle relazioni che rispetti tali regole, e seguiremo un esempio completo di implementazione di un sito con il BMF. Tra le varie funzionalità implementate che andremo ad analizzare, studiare e provare merita un’introduzione AG Informatica Medica - Parte II – il framework BMF 12 12 particolare la gestione delle utenze. Questo perché in ambito e-health le utenze hanno molti vincoli dettati dalla normativa vigente. Il BMF prevede un meccanismo di autenticazione che comprende la gestione classica a profili; permette quindi di assegnare a ciascun utente un profilo costituito da un insieme di attributi quali, ad esempio, funzione, ruolo, posizione, sede, ecc. all’interno di un’organizzazione aziendale. Ad ogni profilo è assegnato un livello di visibilità sui dati, per cui è possibile implementare un controllo completo sulle operazioni realizzabili da ciascun utente finale. Inoltre, per le applicazioni che gestiscono dati sensibili si può configurare l’accesso ai dati anche per singola login (ad esempio i medici che hanno ottenuto il consenso informato dai pazienti in cura presso la struttura in cui esercitano). 1.1 Requisiti HW/SW Per creare applicazioni attraverso l’utilizzo del BMF è necessario predisporre una piattaforma a tre livelli (Web-Application-Database Server) in grado di eseguire codice Java. (in stage va bene anche a 2 livelli: Appl. e Db) Figura 1 Esempio di architettura 3 livelli con web,application e db server Una possibile configurazione della piattaforma è data dalla combinazione dei seguenti elementi, a seconda della loro compatibilità: • Sistemi operativi:Unix, Linux, Windows, OSX, etc. • Web server: Apache, IIS, etc. • Application server: Tomcat, Jrun, etc. • Basi di dati: Oracle, DB2, MySQL, MS–SQLserver, Access AG Informatica Medica - Parte II – il framework BMF 13 13 • Client-Browser: Internet Explorer, Mozilla FireFox, Google Crome, etc. Relativamente ai browser è stata osservata una maggiore affidabilità utilizzando firefox. Se necessario si può disporre anche di una licenza BMF per ogni server installato, indipendentemente dal numero delle postazioni utente (PC in cui si utilizzerà l’applicativo finale per effettuare operazioni di interrogazione e data entry). Esiste una versione del BMF, adeguatamente configurata per le applicazioni didattiche universitarie (per gli studenti). BMF è un software Open Source con licenza LGPL. 1.2 Le esigenze funzionali Di seguito analizzeremo alcune classiche funzionalità offerte dai sistemi web su database, che soddisfano le esigenze di diverse tipologie di utenti: inserimento dei dati, visualizzazione e stampa, interrogazioni mediante filtri di ricerca, ecc; spiegheremo, quindi, come tali esigenze vengono interpretate e realizzate da BMF. In qualunque ambiente applicativo si operi, è solitamente richiesta una diversificazione degli accessi alla stessa risorsa fisica, in base alle varie tipologie di utenti interessati; una rappresentazione schematica è mostrata nella figura seguente: Figura 2– Accessi differenziati alla tabella T_ANAG, mediante la maschera ANAGRAFE. AG Informatica Medica - Parte II – il framework BMF 14 14 Nel database di esempio è definita la tabella T_ANAG, che raccoglie un certo numero di informazioni di tipo anagrafico; a livello di applicativo web, si vuole mostrare questa risorsa attraverso un oggetto astratto, la maschera ANAGRAFE, che verrà visualizzata con caratteristiche differenti a seconda dell’utente loggato e del profilo associato (Visitatore 1, Ammin Base, ecc.) Ciascun utente, infatti, viene riconosciuto dal sistema mediante la propria login e password ed il relativo profilo associato. Gli utenti a cui viene attribuito il profilo Visitatore 1 e Visitatore 2 hanno possibilità di lettura dei dati (tutti i campi o alcuni campi di T_ANAG); Ammin Base è il profilo che consente solo alcune funzionalità di lettura e scrittura; Ammin Super può leggere e scrivere tutti i campi della tabella T_ANAG. La tabella che segue, schematizza questa ipotesi di accessi diversificati alla T_ANAG: Utente Login / Password Profilo Funzioni A VISIT_1/XXX Visitatore 1 B AMM_B/YYY Amministratore Base C VISIT_2/ZZZ Visitatore 2 D AMM_S/KKK Amministratore Super Accede a tutti i campi della tabella T_ANAG in sola lettura (R) Accede ad alcuni campi della tabella T_ANAG in lettura/scrittura (R/W) Accede ad alcuni campi della tabella T_ANAG in sola lettura (R) Accede a tutti i campi della tabella T_ANAG lettura/scrittura (R/W) AG Informatica Medica - Parte II – il framework BMF 1.3 15 15 Oggetti astratti e template Per rappresentare quanto necessario alla realizzazione delle quattro diverse funzionalità secondo la logica di BMF, ci serviremo di alcuni oggetti astratti: 1. 2. 3. Un oggetto astratto di tipo PULSANTE P_ANAG Un oggetto astratto di tipo DATA ENTRY T_ANAG Un oggetto astratto di tipo VISUALIZZAZIONE V_ANAG In particolare: - Tutti gli utenti avranno a disposizione un pulsante P_ANAG attraverso il quale richiamare la visualizzazione della maschera ANAGRAFE; - L’Utente A e l’Utente C avranno a disposizione un oggetto V_ANAG per la visualizzazione dei dati; - L’Utente B e l’utente D avranno a disposizione un oggetto T_ANAG per la visualizzazione e l’aggiornamento dei dati. Poiché in due casi (Utente A e Utente C) è prevista la sola visualizzazione dei dati, utilizzeremo lo stesso template ovvero lo stesso modello di presentazione dei dati all’utente. Negli altri due casi (Utente B e Utente D) useremo un template diverso, per la visualizzazione/modifica dei dati. L’azione associata all’oggetto astratto P_ANAG (pulsante) degli utenti A e C sarà, dunque, diversa da quella impostata per gli utenti D e B, proprio per questa diversità dei template. Di seguito, una rappresentazione dei template utilizzati per presentare i dati della tabella T_ANAG alle quattro tipologie di utenti, e la corrispondente codifica degli oggetti astratti utilizzati dal BMF(Figura 2). AG Informatica Medica - Parte II – il framework BMF 16 16 100 100 Figura 3 - Template, oggetti astratti e codifica in BMF Analizziamo la parte sinistra della Figura 3. Gli utenti A e C, che possono visualizzare i dati di T_ANAG (R=Read) avranno a disposizione lo stesso template, cioè l’oggetto astratto ANAGRAFE verrà mostrato con il template di visualizzazione; la sola differenza riguarda i dati visualizzati: per l’Utente A tutti i campi, per l’Utente C solo alcuni campi di T_ANAG. Invece, gli utenti amministratori B e D, che possono visualizzare/modificare i dati di T_ANAG (R/W=Read/Write), avranno a disposizione un template di data entry (nella parte superiore visualizzazione dei dati, nella parte inferiore possibilità di inserimento dei dati); la maschera ANAGRAFE si differenzierà per AG Informatica Medica - Parte II – il framework BMF 17 17 il numero di campi mostrati: per l’Utente B tutti i campi in visualizzazione/modifica, per l’Utente D solo alcuni campi in visualizzazione/modifica di T_ANAG. Nella parte destra di Figura 2 viene rappresentata la codifica di queste associazioni in ambiente BMF. UTENTE A Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la visualizzazione dei dati; inoltre, avrà associato V_ANAG oggetto di tipo visualizzazione di tutti i campi della tabella in questione. UTENTE C Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la visualizzazione dei dati; inoltre, V_ANAG oggetto di tipo visualizzazione di alcuni campi della tabella in questione. Si osservi che il codice dell’oggetto pulsante P_ANAG è lo stesso per i due utenti A e C (Codice 100) poiché utilizziamo lo stesso template (di visualizzazione). I due oggetti V_ANAG avranno un codice diverso, poiché l’Utente A è abilitato alla visualizzazione di tutti i campi della T_ANAG, mentre l’Utente C solo di alcuni. UTENTE B Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la gestione in R/W dei dati; inoltre, avrà associato T_ANAG oggetto di tipo data entry di tutti i campi della tabella in questione. UTENTE D Avrà associato un oggetto P_ANAG di tipo pulsante, per attivare la gestione in R/W dei dati; inoltre, T_ANAG oggetto di tipo data entry di alcuni campi della tabella in questione. Anche in questo caso, si osservi che il codice dell’oggetto pulsante P_ANAG è lo stesso per i due utenti B e D (Codice 400) poiché viene utilizzato lo stesso template (di data entry). I due oggetti T_ANAG avranno un codice diverso, poiché l’Utente B è abilitato alla lettura/scrittura di tutti i campi della T_ANAG, mentre l’Utente D solo di alcuni campi. Il BMF memorizza queste informazioni per tutti gli utenti del sistema nella tabella T_OGGETTO ed in altre tabelle ad essa correlate, come spiegheremo più avanti. Al login dell’Utente A, solo le informazioni riguardanti A vengono memorizzate nella SESSIONE, area di memoria dell’application server che contiene tutte le AG Informatica Medica - Parte II – il framework BMF 18 18 informazioni relative allo stato dell'utente nella sessione corrente; tale area, che nasce al login, viene ripulita con il logout dall’applicazione, con la chiusura del browser, oppure in seguito al time-out sulla connessione. Figura 4 – Login: memorizzazione degli oggetti associati all’Utente A nella SESSIONE BMF utilizza la SESSIONE per visualizzare e rendere disponibili tutti e soli gli oggetti di pertinenza dell’utente autenticato, in base al suo profilo. AG Informatica Medica - Parte II – il framework BMF 1.4 19 19 Login e sessione La figura che segue mostra più in dettaglio la logica funzionale che interviene quando un generico Utente U1 si collega ad un sistema web realizzato con BMF. Figura 5 - Login dell'utente U1 e memorizzazione dei dati relativi in Sessione U1 Il client a cui è collegato U1 ha attivo un browser (ad esempio Internet Explorer, I.E.). Dopo aver digitato l’indirizzo del sito web desiderato, ed aver impostato login e password, la richiesta passa attraverso la rete e raggiunge il server che immaginiamo, per semplicità, essere un’unica macchina su cui risiedono i tre livelli: Web, Application e DB Server. La parte Web del server accoglie la richiesta del client e la trasferisce all’Application Server. A questo punto la parte Application chiede al DB se l’utente è abilitato ad accedere al sistema, ovvero se è codificato come utente, mediante il controllo sulla login e password immesse. In caso affermativo, la parte DB passa all’Application l’intera configurazione dell’utente, che verrà memorizzata in SESSIONE. In particolare, in questa area di memoria verranno memorizzate le seguenti informazioni (reperite da alcune tabelle del BMF, indicate fra parentesi): • Gli oggetti astratti associati all’utente U1 ed il loro tipo (tabelle T_OGGETTO, T_OGGETTO_LABEL, T_TIPO_OGGETTO); • Gli attributi quali: ruolo, funzione, categoria, ed altre caratteristiche che riguardano l’utente come personale (V_UTENTE, V_UTENTE_PERSONE); • Il suo profilo (REL_UTENTE_PROFILO); AG Informatica Medica - Parte II – il framework BMF • 20 20 Le relazioni esistenti fra gli oggetti ed il profilo utente (REL_OGGETTO_PROFILO) AG