• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Progettazione di una base di dati in ambiente office per un reparto di neurologia
 

Progettazione di una base di dati in ambiente office per un reparto di neurologia

on

  • 656 views

 

Statistics

Views

Total Views
656
Views on SlideShare
656
Embed Views
0

Actions

Likes
1
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Progettazione di una base di dati in ambiente office per un reparto di neurologia Progettazione di una base di dati in ambiente office per un reparto di neurologia Document Transcript

    • Università degli studi di Trieste Facoltà di Ingegneria Corso di Laurea Triennale in Ingegneria Informatica Progettazione di una base di dati in ambiente Office per la gestione di un reparto di neurologiaRelatore LaureandoProf. Maurizio Fermeglia Luca Sandonato Anno Accademico 2009/2010
    • Sommario1 - Introduzione ................................................................................................................................................. 32 - Analisi............................................................................................................................................................ 4 2.1 - Requisiti: intervista col committente. ................................................................................................ 4 2.2 - Riassunto dei punti salienti dell’intervista. ......................................................................................... 5 2.3 - Strutturazione dei dettagli .................................................................................................................. 5 2.4 - Glossario dei termini ......................................................................................................................... 143 - Progettazione della base di dati................................................................................................................. 16 3.1 - Progettazione concettuale: ............................................................................................................... 16 3.1.1 - Schema Entity-Relationship: ..................................................................................................... 17 3.1.2 - Dizionario delle ENTITA’............................................................................................................ 18 3.1.3 - Dizionario delle RELAZIONI ....................................................................................................... 21 3.1.4 - Analisi delle CARDINALITA’ ....................................................................................................... 22 3.2 - Progettazione logica: ........................................................................................................................ 23 3.2.1 - Tabella dei volumi ..................................................................................................................... 23 3.2.2 - Tabella delle operazioni ............................................................................................................ 24 3.2.3 - Tabella degli accessi: ................................................................................................................. 24 3.2.4 - Ristrutturazione: ....................................................................................................................... 25 3.2.4.1 - Eliminazione delle generalizzazioni ................................................................................... 25 3.2.4.2 - Raffinamento delle relazioni.............................................................................................. 27 3.2.4.3 - Schema E-R ristrutturato ................................................................................................... 28 3.2.5 - Schema logico ........................................................................................................................... 294 - Realizzazione della base di dati.................................................................................................................. 30 4.1 - Viste .................................................................................................................................................. 31 4.2 - Stored Procedure .............................................................................................................................. 325 - Realizzazione dell’interfaccia utente ......................................................................................................... 37 5.1 - Creazione delle maschere ................................................................................................................. 37 5.2 - Generazione del codice vba .............................................................................................................. 406 - Conclusioni.................................................................................................................................................. 427 - Bibliografia .................................................................................................................................................. 43 2
    • 1 - IntroduzioneQuesta tesi tratta la realizzazione di un’applicazione per la gestione dellevisite mediche ad uso personale del responsabile della “Stroke Unit” dellaclinica neurologica di Cattinara.L’obiettivo finale sarà la realizzazione di un software indipendente dallastruttura informatica ospedaliera che verrà usato localmente dal solo medicoresponsabile del reparto, o al massimo da qualche stretto collaboratore. Ilprototipo realizzato permetterà la gestione dei pazienti ricoverati presso laclinica e organizzerà tutte le visite mediche sostenute.Essendo il progetto su misura ed indipendente dai servizi informaticipreesistenti, si renderà necessario lo sviluppo di una base di dati in grado digestire tutti i dati richiesti. Successivamente si procederà alla realizzazione diun’interfaccia utente.Nelle seguenti pagine verrà illustrato in modo dettagliato i percorso seguitoper la realizzazione di quanto esposto, riassumibile nei seguenti punti chiave:  Analisi del progetto  Progettazione della base di dati  Realizzazione della base di dati  Creazione dell’interfaccia utenteSi concluderà con una quantificazione del lavoro svolto e una valutazione dieventuali futuri miglioramenti o aggiunte al software. 3
    • 2 - AnalisiNei seguenti paragrafi procederemo ad un’analisi dettagliata di tutti irequisiti del committente cercando di organizzarli nel modo più efficacepossibile.Data la presenza di numerosi termini medici da organizzare in elenchi siprocederà escludendoli dalla sintesi iniziale dei requisiti per includerlidirettamente nella strutturazione dei dettagli.2.1 - Requisiti: intervista col committente.Durante il primo incontro con il medico responsabile sono state elencate leprincipali caratteristiche del programma da realizzate. Successivamenteverrà fornito un documento contenente i numerosi elenchi di termini medicila cui presenza è necessaria alla realizzazione del progetto.Dall’intervista risulta la necessità di realizzare un database per la gestionedelle visite mediche eseguite dal responsabile della “stroke unit” della clinicaneurologica di Cattinara di Trieste.Il progetto non si appoggerà a nessuna base di dati o struttura informaticaesistente e sarà ad uso esclusivo del responsabile ed alcuni suoi stretticollaboratori.Il database in questione sarà gestito da un’interfaccia utente che permette inmaniera intuitiva di gestire una semplice anagrafica dei pazienti e le lorovisite mediche.Le visite mediche potranno essere di tre tipologie differenti: ricovero, primavisita e visita successive, ciascuna con dettagli ed esami che possono esserecomuni o specifici del tipo di visita considerato. Principalmente sonocomposte da moduli da compilare, le cui specifiche verranno elencate inmodo dettagliato successivamente.Nelle visite è necessario poter inserire una o più immagini relative ad unatipologia specifica d’esame. Sarà possibile elencare dei farmaci prescritti chedovranno essere organizzati per tipologia. 4
    • Non sono stati espressi requisiti riguardanti la sicurezza della base di dati odell’interfaccia.Per quanto riguarda i software da utilizzare, si è richiesto l’utilizzo di MSAccess per l’interfaccia utente e MS Sql Server 2008 Express come DBMS.2.2 - Riassunto dei punti salienti dell’intervista.  Si vuole realizzare un database per la gestione delle visite mediche eseguite dal responsabile della “stroke unit” della clinica neurologica di Cattinara di Trieste.  Il progetto e’ limitato all’uso personale del medico e di conseguenza non e’ connesso in alcun modo a strutture o sistemi preesistenti dell’azienda sanitaria.  Si richiede una gestione semplice dell’anagrafica dei pazienti.  Vengono gestite diverse tipologie di visita in base alla situazione in cui si trova il paziente: ricovero, prima visita e visita successive.  Ogni visita richiede degli esami specifici.  E’ richiesto un elenco di farmaci suddivisi per tipologia.  Le modalità di visita richiedono la compilazione di numerosi moduli elencati successivamente nel dettaglio.  E’ richiesta la possibilità di inserimento di una o più immagini per visita.  Nessuna richiesta sulla gestione della sicurezza  E’ richiesto l’uso di Access per l’interfaccia utente.  E’ richiesto l’uso di MS Sql Server 2008 Express per la base di dati.2.3 - Strutturazione dei dettagliUna volta individuate le linee guida possiamo procedere ad una analisidettagliata degli elementi costituenti del progetto. A questo scopo sono statiindividuati dei termini di rilievo che racchiudono dei concetti base bendistinti che risulteranno essenziali nella successiva fase di progettazione dellabase di dati.Come accennato nell’intervista col committente, in questa fase si userà unelenco fornito dal responsabile della clinica, contenente tutti i dettagli tecnicie le terminologie mediche relative ai vari moduli degli esami. 5
    •  Strutturazione di: “Paziente”.Dettagli da archiviare: o Nome o Cognome o Data di nascita o Indirizzo o Città o Codice fiscale o Telefono o E-mail o Note Strutturazione di: “Ricovero”.Dettagli da archiviare: o Data o Ora o Data insorgenza disturbo o Ora insorgenza disturbo o Diagnosi all’ingresso:  PACS  TACS  LACS  POCS  Emorragia  TIA  Altro o NIH all’ingresso o Trombolisi o NIH alla dimissione o Rankin alla dimissione o Data dimissione o Destinazione dimissione:  Domicilio  RSA  Altro presidio per acuti  Altro regime di degenza  Istituto di riabilitazione o Anamnesi:  Familiare: o Malattie genetiche o Familiarità per ipertensione 6
    • o Diabete o Dislipidemia o Malattie cerebrovascolari o Malattie cardiovascolari  Fattori di rischio: o Fumo di sigaretta o Ipertensione o Diabete o Dislipidemia.  Farmaci assunti a domicilio: o Anticoagulanti o Antiaggreganti o Antiipertensivi o Ipolipemizzanti o Altri farmaci cardiologici. o Altri  Patologie concomitanti: o Cardiopatia o Arteriopatia obliterante AAII o Nefropatia o Altro  Patologica prossimao Esame obiettivoo Esami ematochimici:  Hb glicata  Creatinina  Colesterolo totale  Colesterolo HDL  Trigliceridi  HB  MCV  Uricemia  Folati  B12  Set trombofilico completo  INRo Neuroimaging:  Immagini  TC capo: o Ischemia o Emorragia o Leucoaraiosi 7
    • o Negativa o Altro  RM encefalo o Ischemia o Emorragia o Leucoaraiosi o Negativa o Altro  ANGIO TC o Stenosi o Non stenosi o Altro  ANGIO RM o Stenosi o Non stenosi o Altroo Esami ultrasonografici:  ECOCOLORDOPPLER TSA o Stenosi>70% o Stenosi 50-70% o Stenosi <50%  ECOCOLORDOPPLER transcranico o Stenosi o Shunt destro-sinistro  ECOCARDIO TRANSTORACICO o Valvulopatia o Ipertrofia dx o Ipertrofia sn  ECOCARDIO TRANSESOFAGEO o Trombo o Aneurisma del setto o PFOo Altri esami:  ECG o Normale o Anormale  Consulenze specialisticheo Terapia durante il ricovero e alla dimissione:  Farmaci prescritti: o In atto o Nuovo farmaco prescritto o Note 8
    •  Strutturazione di: “Prima visita”.Dettagli da archiviare: o Data o Diagnosi all’ingresso:  PACS  TACS  LACS  POCS  Emorragia  TIA  Altro o Data diagnosi o Anamnesi ed EON:  Familiare: o malattie genetiche o Familiarità per ipertensione o Diabete o Dislipidemia o Malattie cerebrovascolari o Malattie cardiovascolari  Fattori di rischio: o Fumo di sigaretta o Ipertensione o Diabete o Dislipidemia.  Patologie concomitanti: o Cardiopatia o Arteriopatia obliterante AAII o Nefropatia o Altro  Patologica prossima  Esame obiettivo  NIH  Rankin o Ultimi esami ematochimici:  Hb glicata  Creatinina  Colesterolo totale  Colesterolo HDL  Trigliceridi  HB 9
    •  MCV  Uricemia  Folati  B12  Set trombofilico completo  INRo Neuroimaging:  Immagini  TC capo: o Ischemia o Emorragia o Leucoaraiosi o Negativa o Altro  RM encefalo o Ischemia o Emorragia o Leucoaraiosi o Negativa o Altro  ANGIO TC o Stenosi o Non stenosi o Altro  ANGIO RM o Stenosi o Non stenosi o Altroo Esami ultrasonografici:  ECOCOLORDOPPLER TSA o Stenosi>70% o Stenosi 50-70% o Stenosi <50%  ECOCOLORDOPPLER transcranico o Stenosi o Shunt destro-sinistro  ECOCARDIO TRANSTORACICO o Valvulopatia o Ipertrofia dx o Ipertrofia sn  ECOCARDIO TRANSESOFAGEO o Trombo 10
    • o Aneurisma del setto o PFO o Altri esami:  ECG o Normale o Anormale  Consulenze specialistiche o Terapia in atto e terapia prescritta:  Farmaci prescritti: (vedi note) o Terapia in atto o Nuovo farmaco prescritto o Note Strutturazione di: “Visite successive”.Dettagli da archiviare: o Data o Note anamnestiche o Esame obiettivo o NIH o Rankin o Ultimi esami ematochimici:  Hb glicata  Creatinina  Colesterolo totale  Colesterolo HDL  Trigliceridi  HB  MCV  Uricemia  Folati  B12  Set trombofilico completo  INR o Neuroimaging:  Immagini  TC capo: o Ischemia o Emorragia o Leucoaraiosi o Negativa 11
    • o Altro  RM encefalo o Ischemia o Emorragia o Leucoaraiosi o Negativa o Altro  ANGIO TC o Stenosi o Non stenosi o Altro  ANGIO RM o Stenosi o Non stenosi o Altroo Esami ultrasonografici:  ECOCOLORDOPPLER TSA o Stenosi>70% o Stenosi 50-70% o Stenosi <50%  ECOCOLORDOPPLER transcranico o Stenosi o Shunt destro-sinistro  ECOCARDIO TRANSTORACICO o Valvulopatia o Ipertrofia dx o Ipertrofia sn  ECOCARDIO TRANSESOFAGEO o Trombo o Aneurisma del setto o PFOo Altri esami:  ECG o Normale o Anormale  Consulenze specialisticheo Terapia in atto e terapia prescritta:  Farmaci prescritti: (vedi note) o Terapia in atto o Nuovo farmaco prescritto o Note 12
    •  Strutturazione di: “Farmaci”.Elenco dei farmaci suddivisi per tipologia: o Antiaggreganti  ASA 100  ASA 300  Clopidogrel  Dipiridamolo 200 + ASA 25  Altro o Anticoagulanti  Eparina sodica  Eparina LMW  Warfarin  Acenocumarolo  Dabigatran  Altro o Antiipertensivi  Calcioantagonisti  Betebloccanti  ACEinibitori  Spartani  Alfa-litici  Diuretici  Altro o Antiedemigieni  Diuretici osmotici  Steroidi o Antidiabetici  Insuline  Sulfaniluree  Biguanidi  Glitazoni  Altro o Ipolipemizzanti  Statine  Fibrati  Altro o Antiepilettici  Fenobarbitale  Acido valproico  Difenilidantoina  Carbamazepina  Oxcarbazepina  Levitiracetam  Topiramato  Lamotrigina  Zonisamide  Altro 13
    • o Antibiotici  Penicilline  Cefalosporine e altre beta lattamine  Tetracicline  Aminoglicosidi  Macrolidi  Clindamicina  Sulfamidici e trimetoprim  Metronidazolo  Cloramfenicolo  Fluorochinolonici  Altro o Antidepressivi  Tipici  Atipici o Antipsicotici  Tipici  AtipiciNota: E’ stato fornito un elenco di farmaci “generico” visto che sarebbeimpossibile elencare ogni farmaco presente in commercio vista la rapiditàcon cui cambiano nome e l’esistenza di moltissimi medicinali equivalenti.Ogni farmaco necessita di un campo note.2.4 - Glossario dei terminiNella seguente tabella vengono elencati i termini più significativi ricavatidurante l’analisi. Ad essi viene associata una breve descrizione con eventualisinonimi e collegamenti tra termini.Questa fase è essenziale e ci prepara alla progettazione della base di dati,fornendoci un comodo quadro sinottico di tutti gli elementi del progetto.Termine Descrizione Sinonimi Collegamenti Soggetto che vienePaziente sottoposto ad una delle - Visita differenti tipologie di visita Elemento principale della Ricovero, Paziente,Visita base di dati, contiene i prima visita, destinazione 14
    • dettagli delle visite mediche visita dimissione, e tutti i documenti ad essa successiva. consulenza relativi. specialistica, diagnosi all’ingresso, anamnesi, esami ematochimici, neuroimaging, esami ultrasonografici, tipo terapia, farmaco. Elenco delle possibiliDestinazione destinazioni a seguito della - Visitadimissione dimissione nei casi di visite di ricovero. Ogni visita puo’ includere unaConsulenza o piu’ consulenze - VisitaSpecialistica specialistiche Ogni visita deve includereDiagnosi una diagnosi all’ingresso che - Visitaall’ingresso descriva la motivazione che ha portato alla visita stessa. A seconda del tipo di visitaTipo terapia possono essere associate - Visita, farmaco tipologie differenti di terapia Ogni terapia di ciascuna visita richiede la presenza di un Categoria, tipoFarmaco Medicinale elenco di farmaci prescritti terapia, visita con relative note. Ogni farmaco appartiene adCategoria Genere Farmaco una differente categoria Ogni visita puo’ richiedereImmagine l’inserimento di una o piu’ Neuroimaging immagini con relative note. Modulo da compilareAnamnesi contenente l’anamnesi del - Visita paziente Modulo da compilareEsame contenente l’esame Visitaematochimico ematochimico del paziente Modulo da compilareNeuroimaging contenente dettagli relativi Visita, immagine ad alcuni esami. Modulo da compilareEsame contenente l’esame Visitaeultrasonografico ultrasonografico del paziente 15
    • 3 - Progettazione della base di datiIn questa fase sfrutteremo i risultati dell’analisi, in particolare il glossario deitermini per iniziare la progettazione della base di dati, iniziando a selezionareentità e relazioni che andranno a formare lo schema Entity-Reletionship, perpoi passare alla valutazione delle cardinalità e la produzione finale delloschema logico.3.1 - Progettazione concettuale:Dall’analisi delle entità e delle relazioni ricavate precedentemente possiamoprodurre una prima versione dello schema E-R (Entity-Reletionship).Assieme allo schema E-R compiliamo un Dizionario delle Entità nel quale siprovvede a fornire una breve descrizione della stessa elencandone gliattributi.Un altro elemento fondamentale è il Dizionario delle Relazioni che in modosimile al precedente ne descrive le relazioni, sottolineando gli attributiinteressati.Infine si procede con l’analisi delle cardinalità, necessaria a capire a fondo lerelazioni tra le entità ed essenziale per la realizzazione dello schema logico. 16
    • 3.1.1 - Schema Entity-Relationship: 17
    • 3.1.2 - Dizionario delle ENTITA’Entità Attributi Descrizione - ID_Paziente - Nome - Cognome - Data_Nascita - Indirizzo L’entità paziente elenca tutti iPaziente - Città dati personali dello stesso. - Codice_Fiscale - Telefono - Email - Note Generalizzato in Ricovero, PrimaVisita - visita e Visita successiva. - ID_Visita - Data - Ora - Data_Insorgenza_Disturbo - Ora_Insorgenza_Disturbo Rappresenta la tipologia di visita - NIH_IngressoRicovero ricovero e ne elenca tutte le voci - Trombolisi necessarie al medico. - NIH_Dimissione - Rankin_Dimissione - Data_Dimissione - Esame_Obiettivo - ECG - ID_Visita - Data - Data_Diagnosi Rappresenta la tipologia di visitaPrima visita - Esame_Obiettivo Prima visita e ne elenca tutte le - ECG voci necessarie al medico. - NIH - RANKIN - ID_Visita - Data Rappresenta la tipologia di visita - Note_Anamnestiche Visita successiva e ne elencaVisita successiva - Esame_Obiettivo tutte le voci necessarie al - ECG medico. - NIH - RANKIN Generalizzato in: DiagnosiDocumento Allingresso, Esame obiettivo,ricovero - Destinazione dimissione, Anamnesi, Esame ematochimico, Neuroimaging, 18
    • Esame ultrasonografico, Consulenza specialistica, Terapia. Generalizzato in: Diagnosi Allingresso, Anamnesi ed EON,Documento Ultimo esame ematochimico,Prima visita - Neuroimaging, Esame ultrasonografico, Consulenza specialistica, Terapia. Generalizzato in: Esame obiettivo, Ultimo esameDocumento ematochimico, Neuroimaging, -Visita successiva Esame ultrasonografico, Consulenza specialistica, Terapia. Indica il tipo di diagnosi - ID_DiagnosiDiagnosi effettuata dal medico al - NomeAllingresso momento della visita del - Note paziente. - ID_Visita - Malattie_Genetiche - Familiarità_ipertensione - Diabete_Familiare - Dislipidemia_Familiare - Malattie_cerebrovascolari - Malattie_cardiovascolari - Fumo - Ipertensione - Diabete_Rischio - Dislipidemia_Rischio Uno dei documenti compilatiAnamnesi - Anticoagulanti dal medico durante la visita, - Antiaggreganti elenca tutte le voci necessarie. - Antiipertensivi - Ipolipemizzanti - Altri_Farmaci_Cardiologici - Altri_Domicilio - Cardiopatia - Arteriosatia_Obliterante_AAII - Nefropatia - Altro_Concomitanti - Patologica_Prossima - Note - ID_Visita Uno dei documenti compilati - Malattie_Genetiche dal medico durante la visita,Anamnesi ed - Familiarità_ipertensione elenca tutte le voci necessarie,EON - Diabete_Familiare differisce dall’entità Anamnesi - Dislipidemia_Familiare per alcuni attributi. - Malattie_cerebrovascolari 19
    • - Malattie_cardiovascolari - Fumo - Ipertensione - Diabete_Rischio - Dislipidemia_Rischio - Cardiopatia - Arteriosatia_Obliterante_AAII - Nefropatia - Altro_Concomitanti - Patologica_Prossima - Note Rappresenta il documento - ID_VisitaEsame obiettivo esame obiettivo redatto dal - Esame_Obiettivo medico durante la visita. - ID_Visita - Creatinina - Colesterolo_Totale - Colesterolo_HDL - Trigliceridi - HB Uno dei documenti compilatiEsame - MCV dal medico durante la visita,ematochimico - Uricemia elenca tutte le voci necessarie. - Folati - B12 - Set_Trombofilico_Completo - INR - Hb_Glicata - ID_Visita - Ischemia_TC_Capo - Emorragia_TC_Capo - Leucoaraiosi_TC_Capo - Negativa_TC_Capo - Altro_TC_Capo - Ischemia_RM_Encefalo - Emorragia_RM_Encefalo Uno dei documenti compilatiNeuroimaging - Leucoaraiosi_RM_Encefalo dal medico durante la visita, - Negativa_RM_Encefalo elenca tutte le voci necessarie. - Altro_RM_Encefalo - Stenosi_Angio_TC - Non_Stenosi_Angio_TC - Altro_Angio_TC - Stenosi_Angio_RM - Non_Stenosi_Angio_RM - Altro_Angio_RM - ID_Visita - Stenosi70 Uno dei documenti compilatiEsame - Stenosi5070 dal medico durante la visita,ultrasonografico - Stenosi50 elenca tutte le voci necessarie. - Stenosi 20
    • - Shunt_Destro_Sinistro - Valvulopatia - Ipertrofia_DX - Ipertrofia_SX - Trombo - Aneurisma_Setto - PFO - ID_Terapia Generalizzata in Durante ilTerapia - Tipo ricovero, alla dimissione, in atto, - Note prescritta - ID_Consulenza Documento riguardante unaConsulenza - Descrizione visita specialistica, solitamentespecialistica - Dettaglio presentato dal paziente. - ID_Destinazione_Dimissione Rappresenta la destinazione diDestinazione - Nome dimissione a seguito di unadimissione - Note visita di ricovero. - ID_Immagine File contenente un’immagineImmagine - Filename relativa ad un esame effettuato. - Note - ID_Farmaco Farmaco che può essereFarmaco - Nome prescritto dal medico. - Dettagli - ID_CategoriaCategoria - Nome Distingue i farmaci per tipologia. - Note3.1.3 - Dizionario delle RELAZIONIRelazioni Attributi Descrizione Collega in maniera univoca ogni visita alAccettazione - paziente che l’ha effettuata. Rappresenta i documenti compilati inCompilazione - ogni visita Specifica la visita a cui si riferisce laInserimento - singola immagine Rappresenta i farmaci prescritti dalPrescrizione - medico per le varie tipologie di terapia.Appartenenza - Organizza i farmaci in categorie Ad una visita il paziente puo’ consegnarePresentazione - dei referti relativi a consulenze specialistiche 21
    • Ogni visita ha associata una terapia che Associazione - ne elenca i medicinali prescritti. Una valutazione del paziente alla visita Valutazione - permette la selezione della diagnosi all’ingresso A seguito di un ricovero al paziente Assegnazione - viene assegnata una destinazione di dimissione. 3.1.4 - Analisi delle CARDINALITA’Relazioni Entità collegate Cardinalità PazienteAccettazione Uno a Molti Visita RicoveroCompilazione Uno a Uno Documenti ricovero ImmagineInserimento Uno a Molti Neuroimaging FarmacoPrescrizione Molti a Molti Terapia FarmacoAppartenenza Uno a Molti Categoria VisitaPresentazione Uno a Molti Consulenza specialistica VisitaAssociazione Molti a Molti Terapia RicoveroValutazione Uno a Molti Diagnosi all’ingresso RicoveroAssegnazione Uno a Molti Destinazione dimissione 22
    • 3.2 - Progettazione logica:La progettazione logica si occupa di tradurre lo schema concettuale in unoschema logico in grado di rappresentare gli stessi dati in maniera efficiente ecorretta.In questo processo andranno valutate le prestazioni determinando i tipi dioperazioni di cui la nostra base di dati si dovrà occupare, cercando diquantificare la mole di dati che dovrà affrontare.Queste considerazioni, assieme ad una attenta analisi dello schema E-R cipermetterà di effettuare delle modifiche allo schema stesso per ottimizzarloil più possibile. Come risultato di queste modifiche avremo uno schema E-Rristrutturato che rappresenta la base di partenza per la creazione delloschema logico.3.2.1 - Tabella dei volumi Concetto Tipo Volume Paziente E 1000 Visita E 3000 Ricovero E 1000 Prima visita E 1000 Visita successiva E 1000 Documento ricovero E 1000 Documento Prima visita E 1000 Documento Visita successiva E 1000 Diagnosi Allingresso E 3000 Anamnesi E 2000 Anamnesi ed EON E 1000 Esame obiettivo E 3000 Esame ematochimico E 3000 Neuroimaging E 3000 Esame ultrasonografico E 3000 Terapia E 9000 Consulenza specialistica E 3000 Destinazione dimissione E 10 Immagine E 6000 23
    • Farmaco E 200 Categoria E 10 Concetto Tipo Volume Accettazione R 3000 Compilazione R 1000 Inserimento R 6000 Prescrizione R 9000 Appartenenza R 200 Presentazione R 3000 Associazione R 9000 Valutazione R 1000 Assegnazione R 10003.2.2 - Tabella delle operazioni Operazione Tipo Frequenza Inserimento nuovo paziente Interattiva 10/settimana Inserimento nuovo farmaco Interattiva 10/mese Visualizzazione elenco dei Interattiva 20/giorno pazienti Visualizzazione elenco visite Interattiva 40/giorno per paziente Inserimento immagine Interattiva 5/giorno Inserimento nuova visita Interattiva 15/giorno Inserimento Anamnesi Interattiva 15/giorno Inserimento terapia Interattiva 50/giorno Visualizzazione elenco terapie Interattiva 20/giorno3.2.3 - Tabella degli accessi:Valutiamo le tre operazioni che hanno luogo con maggior frequenza:  Operazione in esame: Inserimento di una terapia in una visita. 24
    • Concetto Costrutto Accessi Tipo Terapia Entità 1 Scrittura Associazione Relazione 1 Scrittura Visita successiva Entità 1 Lettura Prescrizione Relazione 1 Scrittura Farmaco Entità 5 Lettura Appartenenza Relazione 5 Lettura Categoria Entità 10 Lettura  Operazione in esame: visualizzazione elenco visite per paziente. Concetto Costrutto Accessi Tipo Paziente Entità 1 Lettura Accettazione Relazione 3 Lettura Visita Entità 3 Lettura  Operazione in esame: visualizzazione elenco pazienti. Concetto Costrutto Accessi Tipo Paziente Entità 1000 Lettura3.2.4 - Ristrutturazione:Procediamo ora con l’ottimizzazione dello schema E-R tenendo conto, dovenecessario, dei dati forniti dalle precedenti tabelle.3.2.4.1 - Eliminazione delle generalizzazioniInizialmente si è pensato di sostituire le generalizzazioni con un sempliceattributo da aggiungere alle entità generalizzate. Questo però implicava unafutura mancanza di controllo completo sulla loro immissione, delegandoall’interfaccia tutti i controlli.Si è quindi preferito aggiungere una relazione con un relativo attributo cheraccogliesse i casi possibili contemplati dalle generalizzazioni. 25
    •  Generalizzazione dell’entità “Visita” Ricovero Visita Prima Visita X Tipo_Visita Visita Visita successiva Visita Distinzione Tipo Visita Generalizzazione dell’entità “Terapia” Durante il In atto ricovero Terapia Terapia Alla Prescritta dimissione X Tipo Tipo_Terapia Visita Visita assegnazione Terapia 26
    • 3.2.4.2 - Raffinamento delle relazioniDopo aver eliminato la generalizzazione dellentità "visita" bisogna risolvereil problema delle corrispettive entità generalizzate, cioè "Documentiricovero", “documenti prima visita" e "documenti visite successive". Inquesto caso sarebbe possibile considerare ununica entità "documenti" allaquale aggiungere un attributo per differenziarne il tipo, per poi procedereallinclusione di tutti gli attributi delle generalizzazioni in un unico"documento" che riassumerebbe tutte le voci dei vari esami.Questa soluzione e stata scartata, preferendo mantenere una distinzionenetta tra i vari documenti da compilare.In alcuni casi, ad esempio per “esame obiettivo”, si è preferito includerlodirettamente come attributo dell’entita’ “visita”, essendo unico per ognivisita. Anche l’entita’ “diagnosi all’ingresso” sarebbe potuta diventare unattributo dell’entità “visita” il cui valore sarebbe stato scelto da un elencovalori nell’interfaccia grafica, ma si e’ preferito mantenere il controllo deidati sul database, evitando di eliminarla. Anamnesi Esame obiettivo Documenti Ricovero Compilazione Esame ematochimico Ricovero Neuroimaging Esame ultrasonografico Anamnesi ed EON Documenti Ultimo esame ematochimico Prima Visita Compilazione Prima Visita Neuroimaging Esame ultrasonografico Esame obiettivo Documenti Visita Ultimo esame ematochimico Compilazione Visita successiva Neuroimaging successiva Esame ultrasonografico Anamnesi Esame ematochimico Visita Compilazione Neuroimaging Esame ultrasonografico Distinzione Tipo Visita 27
    • grande numero. 0-1 1-N Destinazione Assegnazione dimissione 0-N 1-1 Consulenza Presentazione Specialistica 1-1 0-N Diagnosi Valutazione all’ingresso 3.2.4.3 - Schema E-R ristrutturato28 0-1 1-1 Anamnesi 0-1 1-1 0-N 1-1 Esame ematochimico Paziente accettazione Visita Compilazione 0-1 1-1 0-N 1-1 Neuroimaging Inserimento Immagine 0-1 1-1 Esame ultrasonografico 1-N 1-N 0-N Tipo 0-N 0-N 1-1 0-N Associazione Prescrizione Farmaco Appartenenza Categoria Terapia quale abbiamo incluso le cardinalità, mentre gli attributi sono omessi visto il Come risultato della ristrutturazione otteniamo un nuovo schema E-R, nel
    • 3.2.5 - Schema logicoDallo schema E-R ristrutturato risulta immediato il passaggio allo schemalogico, nel quale andiamo ad individuare per ogni tabelle la chiavi primarieed esterne che ci permetteranno una realizzazione rapida della base di dati. tblTipoVisita tblDiagnosiIngresso tblEsameUltrasonografico tblAnamnesi PK ID_Tipo_Visita PK ID_Diagnosi PK,FK1 ID_Visita PK,FK1 ID_Visita Nome Nome Stenosi70 Malattie_Genetiche Note Note Stenosi5070 Familiarità_ipertensione tblConsulenza Stenosi50 Diabete_Familiare Stenosi Dislipidemia_Familiare PK ID_Consulenza Shunt_Destro_Sinistro Malattie_cerebrovascolari Valvulopatia Malattie_cardiovascolari Descrizione Ipertrofia_DX Dettaglio Fumo Ipertrofia_SX Ipertensione FK1 ID_Visita tblVisita Trombo Diabete_Rischio PK ID_Visita Aneurisma_Setto Dislipidemia_Rischio PFO Anticoagulanti tblPaziente Data Antiaggreganti PK ID_Paziente Ora Antiipertensivi Data_Insorgenza_Disturbo Ipolipemizzanti Nome Ora_Insorgenza_Disturbo Altri_Farmaci_Cardiologici Cognome NIH_Ingresso Altri_Domicilio Data_Nascita Trombolisi tblEsameEmatochimico Cardiopatia Indirizzo NIH_Dimissione Arteriosatia_Obliterante_AAII Città Rankin_Dimissione PK,FK1 ID_Visita Nefropatia Codice_Fiscale Data_Dimissione Altro_Concomitanti Telefono Data_Diagnosi Hb_Glicata Patologica_Prossima Email Note_Anamnestiche Creatinina Note Note Esame_Obiettivo Colesterolo_Totale ECG Colesterolo_HDL FK1 ID_Paziente Trigliceridi tblNeuroimaging FK2 ID_Diagnosi HB FK3 ID_Destinazione_Dimissione MCV tblTerapiaPK,FK1 ID_Visita FK4 ID_Tipo_Visita Uricemia Folati PK ID_Terapia Ischemia_TC_Capo B12 Emorragia_TC_Capo Set_Trombofilico_Completo Tipo tblImmagine Leucoaraiosi_TC_Capo INR Note Negativa_TC_Capo PK ID_Immagine Altro_TC_Capo Ischemia_RM_Encefalo Filename Emorragia_RM_Encefalo Note tblVisitaTerapiaFarmaco Leucoaraiosi_RM_Encefalo FK1 ID_Visita Negativa_RM_Encefalo PK,FK3 ID_Visita Altro_RM_Encefalo PK,FK1 ID_Terapia tblDestinazioneDimissione tblFarmaco tblCategoriaFarmaco Stenosi_Angio_TC PK,FK2 ID_Farmaco Non_Stenosi_Angio_TC PK ID_Farmaco PK ID_Destinazione_Dimissione PK ID_Categoria Altro_Angio_TC Note_Farmaco Stenosi_Angio_RM Nome Nome Nome Non_Stenosi_Angio_RM Dettagli Note Note Altro_Angio_RM FK1 ID_Categoria 29
    • 4 - Realizzazione della base di dati.In questa fase si procede con la realizzazione della base di dati nel DBMSindicato dai requisiti, cioè Microsoft SQL Server 2008 Express R2.Partendo dallo schema logico realizzato con Microsoft Visio, conoscendo giàle chiavi primarie ed esterne, è stato sufficiente scegliere il tipo di dati perogni colonna e configurare le relazioni tra le tabelle. tblConsulenza tblVisita tblEsameUltraSonografico ID_Consulenza ID_Visita ID_Visita Descrizione Data Stenosi70 Dettaglio Ora Stenosi5070 ID_Visita Data_Insorgenza_Disturbo Stenosi50 Ora_Insorgenza_Disturbo Stenosi NIH_Ingresso Shunt_Destro_Sinistro Trombolisi Valv ulopatia tblPaziente NIH_Dimissione Ipertrofia_DX ID_Paziente Rankin_Dimissione Ipertrofia_SX Nome Data_Dimissione Trombo Cognome Data_Diagnosi Aneurisma_Setto Data_Nascita Note_Anamnestiche PFO Indirizzo Esame_Obiettivo Città ECG Codice_Fiscale NIH Telefono tblEsameEmatochimico Rankin Email ID_Visita ID_Paziente Note Hb_Glicata ID_Diagnosi Creatinina ID_Destinazione_Dimissione Colesterolo_Totale ID_Tipo_Visita tblDiabnosiIngresso Colesterolo_HDL ID_Diagnosi Trigliceridi Nome HB Note MCV Uricemia tblVisitaTerapiaFarmaco Folati ID_Visita B12 tblNeuroimaging ID_Terapia ID_Visita Set_Trombofilico_Completo ID_Farmaco Ischemia_TC_Capo INR Note_Farmaco Emorragia_TC_Capo Leucoaraiosi_TC_Capo tblAnamnesi Negativ a_TC_Capo tblFarmaco ID_Visita ID_Farmaco Altro_TC_Capo Malattie_Genetiche Ischemia_RM_Encefalo Nome Familiarità_ipertensione Emorragia_RM_Encefalo Dettagli Diabete_Familiare Leucoaraiosi_RM_Encefalo ID_Categoria Dislipidemia_Familiare Negativ a_RM_Encefalo Malattie_cerebrov ascolari Altro_RM_Encefalo tblCategoriaFarmaco Malattie_cardiov ascolari Stenosi_Angio_TC ID_Categoria Fumo Non_Stenosi_Angio_TC Nome Ipertensione Altro_Angio_TC Note Diabete_Rischio Stenosi_Angio_RM Dislipidemia_Rischio Non_Stenosi_Angio_RM Anticoagulanti Altro_Angio_RM tblTerapia Antiaggreganti ID_Terapia Antiipertensiv i Tipo Ipolipemizzanti tblImmagine Note Altri_Farmaci_Cardiologici ID_Immagine Altri_Domicilio Filename Cardiopatia Note Arteriosatia_Obliterante_AAII ID_Visita Nefropatia Altro_Concomitanti tblDestinazioneDimissione tblTipoVisita Patologica_Prossima ID_Destinazione_Dimissione ID_Tipo_Visita Note Nome Nome Note Note 30
    • 4.1 - VisteDopo la creazione delle tabelle è necessario preparare numerose viste peraccedere ai dati delle tabelle. La creazione delle viste non è obbligatoria macomporta numerosi vantaggi tra i quali l’indipendenza logica dei dati,riduzione della complessità delle query e una maggiore sicurezza dei dati.Queste viste verranno ampiamente sfruttate dall’interfaccia utente perorganizzare dati provenienti da più tabelle evitando di accederedirettamente alle tabelle del database.Sono state create più di venti viste, ne riportiamo alcune come esempio:  View_VisitaPazienteElenco: questa vista, come suggerito dal nome, raccoglie i dati di tre tabelle permettendoci di ottenere un elenco delle visite sostenute da ogni paziente con relativo tipo di visita e data. 31
    •  View_TerapiaVisitaFarmaco: questa vista si occupa di organizzare i farmaci di ogni terapia relativi a ciascuna visita. Ogni farmaco ha i suoi dettagli e la categoria d’appartenenza.4.2 - Stored ProcedureLe stored procedure sono uno strumento per creare un livello di astrazionedal modello fisico del database garantendo un miglioramento prestazionalee della sicurezza. Inoltre permettono di intervenire sul database senza averela necessità di modificare le applicazioni che lo utilizzano.In questo progetto non sono stati inseriti requisiti in merito a prestazioni osicurezza ma si è preferito utilizzare lo stesso in alcuni casi delle storedprocedure per evitare di delegare all’interfaccia delle operazioni critiche.Le stored procedure sono richiamate dall’interfaccia utente in Access erichiedono dei parametri in ingresso forniti dalle maschere. A questo scopo è 32
    • stato necessario intervenire sui controlli delle maschere utilizzando illinguaggio VBA.Sono state create dieci stored procedure, di seguito ne riportiamo alcuniesempi significativi con il relativo codice chiamante.  spPazienteNuovo: questa procedura si occupa dell’inserimento di un nuovo paziente nel database.USE [Visite]GO/****** Object: StoredProcedure [dbo].[spPazienteNuovo] Script Date: 03/22/201115:42:39 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Luca Sandonato-- Create date:-- Description: Creazione nuovo paziente-- =============================================ALTER PROCEDURE [dbo].[spPazienteNuovo] -- Add the parameters for the stored procedure here --@ID_Paziente int, @Nome nvarchar(30), @Cognome nvarchar(30), @Data_Nascita date= NULL, @Indirizzo nvarchar(30)= NULL, @Città nvarchar(50)= NULL, @Codice_Fiscale nchar(16)= NULL, -- uso nchar per risolvere il problema del campo lasciato vuoto nel form -- che invierebbe un "" dando errore di data-type --@Telefono numeric(18,0)= NULL, @Telefono nvarchar(18)= NULL, @Email nvarchar(50)= NULL, @Note nvarchar(250)= NULLASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; IF @Nome= OR @Cognome= RAISERROR 50000 I campi Nome e Cognome sono obbligatori ELSE BEGIN IF @Data_Nascita = 1900-01-01 OR @Data_Nascita= SET @Data_Nascita = NULL IF @Indirizzo = SET @Indirizzo = NULL IF @Città = SET @Città = NULL IF @Codice_Fiscale = SET @Codice_Fiscale = NULL IF @Telefono = SET @Telefono = NULL IF @Email = SET @Email = NULL IF @Note = SET @Note = NULL INSERT INTO dbo.View_PazienteDettaglio(Nome, Cognome, Data_Nascita,Indirizzo, Città, Codice_Fiscale, Telefono, Email, Note) VALUES (@Nome, @Cognome, @Data_Nascita, @Indirizzo, @Città, @Codice_Fiscale,CAST (@Telefono AS numeric(18,0)), @Email, @Note) ENDEND 33
    • In questo caso la procedura è stata chiamata dall’interfaccia adp in Accessalla pressione del pulsante Salva, nella maschera di aggiunta nuovo paziente.Di seguito un estratto del codice in VBA:  spVisitaTerapiaFarmaco: questa procedura si occupa di associare ad una visita la relativa terapia con i farmaci prescritti.USE [Visite]GO/****** Object: StoredProcedure [dbo].[spVisitaTerapiaFarmaco] Script Date: 03/22/201115:54:55 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: Luca Sandonato-- Create date: 30/7/2010-- Description: Associa alla visita la terapia con i relativi farmaci-- =============================================ALTER PROCEDURE [dbo].[spVisitaTerapiaFarmaco] -- Add the parameters for the stored procedure here @ID_Visita int = 0, @ID_Tipo_Visita int = 0, @ID_Terapia_InAtto int = 0, @ID_Terapia_Prescritta int = 0, 34
    • @ID_Farmaco int = 0, @Note_Farmaco nvarchar (250)= NULL, @Temp1 int = 0, @Temp2 int = 0, @Temp3 int = 0ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; --Controllo preliminare su valori nulli, assenti o IF @ID_Farmaco = OR @ID_Farmaco= NULL RAISERROR 50000 Selezionare Farmaco IF @ID_Terapia_InAtto = 0 AND @ID_Terapia_Prescritta = 0 RAISERROR 50000 Selezionare il tipo di terapia! IF @ID_Visita = NULL OR @ID_Farmaco = NULL RAISERROR 50000 Errore Aggiunta farmaco IF @ID_Terapia_InAtto = NULL AND @ID_Terapia_Prescritta = NULL RAISERROR 50000 Errore Selezione tipo di terapia! ELSE --Controllo se il farmaco e gia stato scelto per questa visita SELECT @temp1=ID_Visita, @temp2=ID_Farmaco, @Temp3=ID_Terapia FROM dbo.View_TerapiaVisitaFarmaco WHERE (ID_Farmaco = @ID_Farmaco) AND (ID_Visita = @ID_Visita) IF @Temp3 <> 0 RAISERROR 50000 Farmaco gia presente in questa visita! ELSE IF @ID_Tipo_Visita <>1 BEGIN IF @ID_Terapia_InAtto = -1 AND @ID_Terapia_Prescritta = -1 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 6, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) IF @ID_Terapia_InAtto = -1 AND @ID_Terapia_Prescritta = 0 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 4, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) IF @ID_Terapia_Prescritta = -1 AND @ID_Terapia_InAtto = 0 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 5, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) END ELSE --Estensione al caso Visita di Ricovero BEGIN IF @ID_Terapia_InAtto = -1 AND @ID_Terapia_Prescritta = -1 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 3, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) IF @ID_Terapia_InAtto = -1 AND @ID_Terapia_Prescritta = 0 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 1, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) IF @ID_Terapia_Prescritta = -1 AND @ID_Terapia_InAtto = 0 INSERT INTO tblVisitaTerapiaFarmaco (ID_Visita, ID_Terapia, ID_Farmaco, Note_Farmaco, Terapia1, Terapia2) VALUES (@ID_Visita, 2, @ID_Farmaco, @Note_Farmaco, @ID_Terapia_InAtto, @ID_Terapia_Prescritta) ENDEND 35
    • Di seguito riportiamo la chiamata alla procedura dalla maschera in Access. 36
    • 5 - Realizzazione dell’interfaccia utenteL’interfaccia utente è stata realizzata con Microsoft Access 2007 mediante lacreazione di un progetto ADP (Access Data Project) connesso al database suSQL Server 2008 Express.Questa fase del progetto è stata svolta in parte assieme alla precedente, inparticolare le viste e le stored procedure sono state create in concomitanzadella creazione delle maschere, in base ai dati necessari e alle operazioni dasvolgere.5.1 - Creazione delle maschereGli elementi costituenti l’interfaccia utente sono le maschere (o form), lequali sono state realizzate cercando di ridurre al minimo l’utilizzo di codiceVBA, ma preferendolo comunque all’uso di macro realizzate con strumenti digenerazione automatica.All’apertura del progetto adp è stata configurata la visualizzazioneautomatica di una maschera contenente i collegamenti alle operazioniprincipali: 37
    • Da questo menù principale è possibile accedere alle funzionalità principalidel software:  Elenco Pazienti: questa voce ci permette di accedere alla sezione principale nella quale è possibile visualizzare un elenco di tutti i pazienti, per i quali sono disponibili alcune opzioni: la gestione dell’anagrafica, la visualizzazione e gestione delle visite già effettuate e la creazione di nuove.Selezionando la voce Elenca visite si visualizza un elenco semplice delle visitesostenute dal paziente, dal quale è possibile accedere al dettaglio dellestesse: 38
    • In questa maschera è presente un sistema di gestione a schede che permettedi accedere ai vari moduli da compilare durante la visita.Tramite la voce Anagrafica si possono gestire le generalità del paziente,mentre con Nuova visita si visualizza la maschera con i dettagli per le nuovevisite mediche.  Nuovo Paziente: in questa maschera è possibile gestire un’anagrafica semplice del paziente. 39
    •  Gestione farmaci: In questa maschera si possono gestire i farmaci e le relative categorie di appartenenza.5.2 - Generazione del codice vbaCome annunciato in precedenza si è cercato di limitare al massimo lacreazione di codice vba per la gestione delle maschere in modo da far gestireil maggior numero di funzionalità possibile direttamente dal dbms. In questomodo si potranno evitare future modifiche all’interfaccia nel caso vi fosse lanecessità di intervenire sul database.Oltre al codice utilizzato per la chiamata delle stored procedure ed ilpassaggio dei relativi parametri già menzionato, non è stato possibile evitaredi utilizzare in molti punti alcune righe di codice per operazioni basilari comeil passaggio di parametri durante l’apertura di una nuova maschera,l’aggiornamento di sottomaschere, operazioni di chiusura e apertura dellemaschere e visualizzazione di messaggi di conferma in caso di eliminazione direcord.L’unico elemento che ha richiesto un impegno maggiore è stato la gestionedelle immagini, alla quale è richiesta la verifica della presenza di una cartellaimmagini sul disco, la sua eventuale creazione, la copia dei file immagine sudisco e la relativa aggiunta di record al database, l’eliminazione delle singole 40
    • immagini e la rimozione di tutte le immagini relative a una visita, in caso dirimozione della stessa.Riportiamo di seguito un estratto del codice. 41
    • 6 - ConclusioniLo sviluppo della base di dati e dell’interfaccia utente sono stati svolti consuccesso, quindi l’obiettivo della presente tesi può considerarsi raggiunto.Il lavoro svolto può essere approssimativamente quantificato come segue:Creazione del database:  16 tabelle  24 viste  10 stored procedure con approssimativamente 150 righe di codice T- SQLCreazione dell’interfaccia utente:  28 maschere in Access  Circa 100 righe di codice Vba per la gestione delle maschere.Attualmente il lavoro è in una fase di valutazione da parte del committente ilquale ha già provveduto a visionare il lavoro più volte richiedendo correzionio modifiche.Un eventuale sviluppo futuro potrebbe riguardare un miglioramento dellaveste grafica, l’aggiunta di funzionalità o la modifica di quelle esistenti.La fase di test permetterà di valutarne a fondo le caratteristiche edindirizzarne le future modifiche prima della consegna finale del progetto. 42
    • 7 - BibliografiaM. Fermeglia, materiale didattico del corso “Basi di dati”M. Fermeglia, materiale didattico del corso “Complementi di basi di dati”Atzeni, Ceri, Paraboschi, Torlone, “Basi di dati: modelli e linguaggi diinterrogazione”, Seconda edizione, Mc Graw-HillMicrosoft Developer Network, http://msdn.microsoft.comMasterDrive.it, http://forum.masterdrive.it 43