SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
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 neurologia




Relatore                                          Laureando

Prof. Maurizio Fermeglia                          Luca Sandonato




                      Anno Accademico 2009/2010
Sommario
1 - Introduzione ................................................................................................................................................. 3
2 - 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 ......................................................................................................................... 14
3 - 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 ........................................................................................................................... 29
4 - Realizzazione della base di dati.................................................................................................................. 30
      4.1 - Viste .................................................................................................................................................. 31
      4.2 - Stored Procedure .............................................................................................................................. 32
5 - Realizzazione dell’interfaccia utente ......................................................................................................... 37
      5.1 - Creazione delle maschere ................................................................................................................. 37
      5.2 - Generazione del codice vba .............................................................................................................. 40
6 - Conclusioni.................................................................................................................................................. 42
7 - Bibliografia .................................................................................................................................................. 43




                                                                           2
1 - Introduzione

Questa tesi tratta la realizzazione di un’applicazione per la gestione delle
visite mediche ad uso personale del responsabile della “Stroke Unit” della
clinica neurologica di Cattinara.

L’obiettivo finale sarà la realizzazione di un software indipendente dalla
struttura informatica ospedaliera che verrà usato localmente dal solo medico
responsabile del reparto, o al massimo da qualche stretto collaboratore. Il
prototipo realizzato permetterà la gestione dei pazienti ricoverati presso la
clinica e organizzerà tutte le visite mediche sostenute.

Essendo il progetto su misura ed indipendente dai servizi informatici
preesistenti, si renderà necessario lo sviluppo di una base di dati in grado di
gestire tutti i dati richiesti. Successivamente si procederà alla realizzazione di
un’interfaccia utente.

Nelle seguenti pagine verrà illustrato in modo dettagliato i percorso seguito
per 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 utente

Si concluderà con una quantificazione del lavoro svolto e una valutazione di
eventuali futuri miglioramenti o aggiunte al software.




                                        3
2 - Analisi

Nei seguenti paragrafi procederemo ad un’analisi dettagliata di tutti i
requisiti del committente cercando di organizzarli nel modo più efficace
possibile.
Data la presenza di numerosi termini medici da organizzare in elenchi si
procederà escludendoli dalla sintesi iniziale dei requisiti per includerli
direttamente nella strutturazione dei dettagli.



2.1 - Requisiti: intervista col committente.


Durante il primo incontro con il medico responsabile sono state elencate le
principali caratteristiche del programma da realizzate. Successivamente
verrà fornito un documento contenente i numerosi elenchi di termini medici
la cui presenza è necessaria alla realizzazione del progetto.

Dall’intervista risulta la necessità di realizzare un database per la gestione
delle visite mediche eseguite dal responsabile della “stroke unit” della clinica
neurologica di Cattinara di Trieste.

Il progetto non si appoggerà a nessuna base di dati o struttura informatica
esistente e sarà ad uso esclusivo del responsabile ed alcuni suoi stretti
collaboratori.
Il database in questione sarà gestito da un’interfaccia utente che permette in
maniera intuitiva di gestire una semplice anagrafica dei pazienti e le loro
visite mediche.

Le visite mediche potranno essere di tre tipologie differenti: ricovero, prima
visita e visita successive, ciascuna con dettagli ed esami che possono essere
comuni o specifici del tipo di visita considerato. Principalmente sono
composte da moduli da compilare, le cui specifiche verranno elencate in
modo dettagliato successivamente.

Nelle visite è necessario poter inserire una o più immagini relative ad una
tipologia specifica d’esame. Sarà possibile elencare dei farmaci prescritti che
dovranno essere organizzati per tipologia.

                                       4
Non sono stati espressi requisiti riguardanti la sicurezza della base di dati o
dell’interfaccia.
Per quanto riguarda i software da utilizzare, si è richiesto l’utilizzo di MS
Access 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 dettagli


Una volta individuate le linee guida possiamo procedere ad una analisi
dettagliata degli elementi costituenti del progetto. A questo scopo sono stati
individuati dei termini di rilievo che racchiudono dei concetti base ben
distinti che risulteranno essenziali nella successiva fase di progettazione della
base di dati.
Come accennato nell’intervista col committente, in questa fase si userà un
elenco fornito dal responsabile della clinica, contenente tutti i dettagli tecnici
e 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 prossima
o Esame obiettivo
o 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

                                     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 Altro
o 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 PFO
o Altri esami:
       ECG
              o Normale
              o Anormale
       Consulenze specialistiche
o 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
      INR
o 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 Altro
o 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 Altro
o 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 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



                                   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
         Atipici



Nota: E’ stato fornito un elenco di farmaci “generico” visto che sarebbe
impossibile 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 termini


Nella seguente tabella vengono elencati i termini più significativi ricavati
durante l’analisi. Ad essi viene associata una breve descrizione con eventuali
sinonimi 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 viene
Paziente            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 possibili
Destinazione        destinazioni a seguito della
                                                            -             Visita
dimissione          dimissione nei casi di visite di
                    ricovero.
                    Ogni visita puo’ includere una
Consulenza
                    o piu’ consulenze                       -             Visita
Specialistica
                    specialistiche
                    Ogni visita deve includere
Diagnosi            una diagnosi all’ingresso che
                                                            -             Visita
all’ingresso        descriva la motivazione che
                    ha portato alla visita stessa.
                    A seconda del tipo di visita
Tipo terapia        possono essere associate                -        Visita, farmaco
                    tipologie differenti di terapia
                    Ogni terapia di ciascuna visita
                    richiede la presenza di un                       Categoria, tipo
Farmaco                                                Medicinale
                    elenco di farmaci prescritti                     terapia, visita
                    con relative note.
                    Ogni farmaco appartiene ad
Categoria                                               Genere           Farmaco
                    una differente categoria
                    Ogni visita puo’ richiedere
Immagine            l’inserimento di una o piu’                       Neuroimaging
                    immagini con relative note.
                    Modulo da compilare
Anamnesi            contenente l’anamnesi del               -             Visita
                    paziente
                    Modulo da compilare
Esame
                    contenente l’esame                                    Visita
ematochimico
                    ematochimico del paziente
                    Modulo da compilare
Neuroimaging        contenente dettagli relativi                     Visita, immagine
                    ad alcuni esami.
                    Modulo da compilare
Esame
                    contenente l’esame                                    Visita
eultrasonografico
                    ultrasonografico del paziente


                                          15
3 - Progettazione della base di dati


In questa fase sfrutteremo i risultati dell’analisi, in particolare il glossario dei
termini per iniziare la progettazione della base di dati, iniziando a selezionare
entità e relazioni che andranno a formare lo schema Entity-Reletionship, per
poi passare alla valutazione delle cardinalità e la produzione finale dello
schema logico.




3.1 - Progettazione concettuale:


Dall’analisi delle entità e delle relazioni ricavate precedentemente possiamo
produrre una prima versione dello schema E-R (Entity-Reletionship).

Assieme allo schema E-R compiliamo un Dizionario delle Entità nel quale si
provvede a fornire una breve descrizione della stessa elencandone gli
attributi.
Un altro elemento fondamentale è il Dizionario delle Relazioni che in modo
simile al precedente ne descrive le relazioni, sottolineando gli attributi
interessati.

Infine si procede con l’analisi delle cardinalità, necessaria a capire a fondo le
relazioni 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 i
Paziente
                    -   Città                      dati personali dello stesso.
                    -   Codice_Fiscale
                    -   Telefono
                    -   Email
                    -   Note
                                                   Generalizzato in Ricovero, Prima
Visita                             -
                                                   visita e Visita successiva.
                    -   ID_Visita
                    -   Data
                    -   Ora
                    -   Data_Insorgenza_Disturbo
                    -   Ora_Insorgenza_Disturbo
                                                   Rappresenta la tipologia di visita
                    -   NIH_Ingresso
Ricovero                                           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 visita
Prima 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 elenca
Visita successiva   -   Esame_Obiettivo            tutte le voci necessarie al
                    -   ECG                        medico.
                    -   NIH
                    -   RANKIN
                                                   Generalizzato in: Diagnosi
Documento                                          All'ingresso, Esame obiettivo,
ricovero                           -               Destinazione dimissione,
                                                   Anamnesi, Esame
                                                   ematochimico, Neuroimaging,

                                          18
Esame ultrasonografico,
                                                        Consulenza specialistica,
                                                        Terapia.
                                                        Generalizzato in: Diagnosi
                                                        All'ingresso, Anamnesi ed EON,
Documento
                                                        Ultimo esame ematochimico,
Prima visita                          -
                                                        Neuroimaging, Esame
                                                        ultrasonografico, Consulenza
                                                        specialistica, Terapia.
                                                        Generalizzato in: Esame
                                                        obiettivo, Ultimo esame
Documento                                               ematochimico, Neuroimaging,
                                      -
Visita successiva                                       Esame ultrasonografico,
                                                        Consulenza specialistica,
                                                        Terapia.
                                                        Indica il tipo di diagnosi
                    -   ID_Diagnosi
Diagnosi                                                effettuata dal medico al
                    -   Nome
All'ingresso                                            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 compilati
Anamnesi            -   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_Visita
Esame obiettivo                                        esame obiettivo redatto dal
                   -   Esame_Obiettivo
                                                       medico durante la visita.
                   -   ID_Visita
                   -   Creatinina
                   -   Colesterolo_Totale
                   -   Colesterolo_HDL
                   -   Trigliceridi
                   -   HB                              Uno dei documenti compilati
Esame
                   -   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 compilati
Neuroimaging       -   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 compilati
Esame
                   -   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 il
Terapia          -   Tipo                         ricovero, alla dimissione, in atto,
                 -   Note                         prescritta
                 -   ID_Consulenza                Documento riguardante una
Consulenza
                 -   Descrizione                  visita specialistica, solitamente
specialistica
                 -   Dettaglio                    presentato dal paziente.
                 -   ID_Destinazione_Dimissione   Rappresenta la destinazione di
Destinazione
                 -   Nome                         dimissione a seguito di una
dimissione
                 -   Note                         visita di ricovero.
                 -   ID_Immagine
                                                  File contenente un’immagine
Immagine         -   Filename
                                                  relativa ad un esame effettuato.
                 -   Note
                 -   ID_Farmaco
                                                  Farmaco che può essere
Farmaco          -   Nome
                                                  prescritto dal medico.
                 -   Dettagli
                 -   ID_Categoria
Categoria        -   Nome                         Distingue i farmaci per tipologia.
                 -   Note




3.1.3 - Dizionario delle RELAZIONI




Relazioni            Attributi                         Descrizione
                                          Collega in maniera univoca ogni visita al
Accettazione              -
                                          paziente che l’ha effettuata.
                                          Rappresenta i documenti compilati in
Compilazione              -
                                          ogni visita
                                          Specifica la visita a cui si riferisce la
Inserimento               -
                                          singola immagine
                                          Rappresenta i farmaci prescritti dal
Prescrizione              -
                                          medico per le varie tipologie di terapia.
Appartenenza              -               Organizza i farmaci in categorie
                                          Ad una visita il paziente puo’ consegnare
Presentazione             -               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à
                           Paziente
Accettazione                                                       Uno a Molti
                             Visita
                           Ricovero
Compilazione                                                        Uno a Uno
                     Documenti ricovero
                          Immagine
Inserimento                                                        Uno a Molti
                        Neuroimaging
                           Farmaco
Prescrizione                                                       Molti a Molti
                            Terapia
                           Farmaco
Appartenenza                                                       Uno a Molti
                          Categoria
                             Visita
Presentazione                                                      Uno a Molti
                   Consulenza specialistica
                             Visita
Associazione                                                       Molti a Molti
                            Terapia
                           Ricovero
Valutazione                                                        Uno a Molti
                    Diagnosi all’ingresso
                           Ricovero
Assegnazione                                                       Uno a Molti
                   Destinazione dimissione




                                              22
3.2 - Progettazione logica:


La progettazione logica si occupa di tradurre lo schema concettuale in uno
schema logico in grado di rappresentare gli stessi dati in maniera efficiente e
corretta.

In questo processo andranno valutate le prestazioni determinando i tipi di
operazioni di cui la nostra base di dati si dovrà occupare, cercando di
quantificare la mole di dati che dovrà affrontare.

Queste considerazioni, assieme ad una attenta analisi dello schema E-R ci
permetterà di effettuare delle modifiche allo schema stesso per ottimizzarlo
il più possibile. Come risultato di queste modifiche avremo uno schema E-R
ristrutturato che rappresenta la base di partenza per la creazione dello
schema 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 All'ingresso                 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                 1000




3.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/giorno




3.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             Lettura




3.2.4 - Ristrutturazione:


Procediamo ora con l’ottimizzazione dello schema E-R tenendo conto, dove
necessario, dei dati forniti dalle precedenti tabelle.



3.2.4.1 - Eliminazione delle generalizzazioni


Inizialmente si è pensato di sostituire le generalizzazioni con un semplice
attributo da aggiungere alle entità generalizzate. Questo però implicava una
futura mancanza di controllo completo sulla loro immissione, delegando
all’interfaccia tutti i controlli.
Si è quindi preferito aggiungere una relazione con un relativo attributo che
raccogliesse 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 relazioni


Dopo aver eliminato la generalizzazione dell'entità "visita" bisogna risolvere
il problema delle corrispettive entità generalizzate, cioè "Documenti
ricovero", “documenti prima visita" e "documenti visite successive". In
questo caso sarebbe possibile considerare un'unica entità "documenti" alla
quale aggiungere un attributo per differenziarne il tipo, per poi procedere
all'inclusione 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 distinzione
netta tra i vari documenti da compilare.

In alcuni casi, ad esempio per “esame obiettivo”, si è preferito includerlo
direttamente come attributo dell’entita’ “visita”, essendo unico per ogni
visita. Anche l’entita’ “diagnosi all’ingresso” sarebbe potuta diventare un
attributo dell’entità “visita” il cui valore sarebbe stato scelto da un elenco
valori nell’interfaccia grafica, ma si e’ preferito mantenere il controllo dei
dati 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 ristrutturato




28
                                                                                         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 logico


Dallo schema E-R ristrutturato risulta immediato il passaggio allo schema
logico, nel quale andiamo ad individuare per ogni tabelle la chiavi primarie
ed 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                                        tblTerapia
PK,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 DBMS
indicato 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 per
ogni 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 - Viste


Dopo la creazione delle tabelle è necessario preparare numerose viste per
accedere ai dati delle tabelle. La creazione delle viste non è obbligatoria ma
comporta 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 per
organizzare dati provenienti da più tabelle evitando di accedere
direttamente 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 Procedure




Le stored procedure sono uno strumento per creare un livello di astrazione
dal modello fisico del database garantendo un miglioramento prestazionale
e della sicurezza. Inoltre permettono di intervenire sul database senza avere
la necessità di modificare le applicazioni che lo utilizzano.

In questo progetto non sono stati inseriti requisiti in merito a prestazioni o
sicurezza ma si è preferito utilizzare lo stesso in alcuni casi delle stored
procedure per evitare di delegare all’interfaccia delle operazioni critiche.

Le stored procedure sono richiamate dall’interfaccia utente in Access e
richiedono dei parametri in ingresso forniti dalle maschere. A questo scopo è

                                      32
stato necessario intervenire sui controlli delle maschere utilizzando il
linguaggio VBA.

Sono state create dieci stored procedure, di seguito ne riportiamo alcuni
esempi 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/2011
15:42:39 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- 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)= NULL
AS
BEGIN
       -- 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)
       END
END




                                            33
In questo caso la procedura è stata chiamata dall’interfaccia adp in Access
alla 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/2011
15:54:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- 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 = 0
AS
BEGIN
        -- 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)
        END
END


                                              35
Di seguito riportiamo la chiamata alla procedura dalla maschera in Access.




                                     36
5 - Realizzazione dell’interfaccia utente


L’interfaccia utente è stata realizzata con Microsoft Access 2007 mediante la
creazione di un progetto ADP (Access Data Project) connesso al database su
SQL Server 2008 Express.

Questa fase del progetto è stata svolta in parte assieme alla precedente, in
particolare le viste e le stored procedure sono state create in concomitanza
della creazione delle maschere, in base ai dati necessari e alle operazioni da
svolgere.



5.1 - Creazione delle maschere


Gli elementi costituenti l’interfaccia utente sono le maschere (o form), le
quali sono state realizzate cercando di ridurre al minimo l’utilizzo di codice
VBA, ma preferendolo comunque all’uso di macro realizzate con strumenti di
generazione automatica.

All’apertura del progetto adp è stata configurata la visualizzazione
automatica di una maschera contenente i collegamenti alle operazioni
principali:




                                     37
Da questo menù principale è possibile accedere alle funzionalità principali
del 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 visite
sostenute dal paziente, dal quale è possibile accedere al dettaglio delle
stesse:




                                       38
In questa maschera è presente un sistema di gestione a schede che permette
di 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 nuove
visite 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 vba


Come annunciato in precedenza si è cercato di limitare al massimo la
creazione di codice vba per la gestione delle maschere in modo da far gestire
il maggior numero di funzionalità possibile direttamente dal dbms. In questo
modo si potranno evitare future modifiche all’interfaccia nel caso vi fosse la
necessità di intervenire sul database.

Oltre al codice utilizzato per la chiamata delle stored procedure ed il
passaggio dei relativi parametri già menzionato, non è stato possibile evitare
di utilizzare in molti punti alcune righe di codice per operazioni basilari come
il passaggio di parametri durante l’apertura di una nuova maschera,
l’aggiornamento di sottomaschere, operazioni di chiusura e apertura delle
maschere e visualizzazione di messaggi di conferma in caso di eliminazione di
record.

L’unico elemento che ha richiesto un impegno maggiore è stato la gestione
delle immagini, alla quale è richiesta la verifica della presenza di una cartella
immagini sul disco, la sua eventuale creazione, la copia dei file immagine su
disco 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 di
rimozione della stessa.

Riportiamo di seguito un estratto del codice.




                                     41
6 - Conclusioni


Lo sviluppo della base di dati e dell’interfaccia utente sono stati svolti con
successo, 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-
     SQL

Creazione 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 il
quale ha già provveduto a visionare il lavoro più volte richiedendo correzioni
o modifiche.

Un eventuale sviluppo futuro potrebbe riguardare un miglioramento della
veste grafica, l’aggiunta di funzionalità o la modifica di quelle esistenti.
La fase di test permetterà di valutarne a fondo le caratteristiche ed
indirizzarne le future modifiche prima della consegna finale del progetto.




                                     42
7 - Bibliografia


M. 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 di
interrogazione”, Seconda edizione, Mc Graw-Hill

Microsoft Developer Network, http://msdn.microsoft.com

MasterDrive.it, http://forum.masterdrive.it




                                       43

Mais conteúdo relacionado

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

Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Luca Bressan
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...daniel_zotti
 
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...ozacchig
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Raffaele Bernardi
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointDenis Tomada
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...artemedea
 
Documento di approfondimento - Progetto CONTACT
Documento di approfondimento - Progetto CONTACTDocumento di approfondimento - Progetto CONTACT
Documento di approfondimento - Progetto CONTACTgiulianisenior
 
Tesi Case Roberto
Tesi Case RobertoTesi Case Roberto
Tesi Case Robertoguestffdfbc
 
Documento di approfondimento
Documento di approfondimentoDocumento di approfondimento
Documento di approfondimentogiulianisenior
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Donato Clun
 
Documentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnaloDocumentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnaloMarco Vaiano
 
Servizi nei sistemi informativi basati su web
Servizi nei sistemi informativi basati su webServizi nei sistemi informativi basati su web
Servizi nei sistemi informativi basati su webFulvietta Favore
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Dario Crosera
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingGiuliaMilan4
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Matteo Miotto
 

Semelhante a Progettazione di una base di dati in ambiente office per un reparto di neurologia (20)

Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
Estrazione automatica di informazioni da documenti cartacei: progetto e reali...
 
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
Progettazione e sviluppo di un'applicazione web per la gestione di dati di at...
 
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...
Porting evolutivo dell'applicazione per la gestione dei dispositivi del Comun...
 
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
Sviluppo e realizzazione di un sistema per la manipolazione di superfici trid...
 
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia SharepointSviluppo Di Portali Tramite La Tecnologia Sharepoint
Sviluppo Di Portali Tramite La Tecnologia Sharepoint
 
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
Studio e realizzazione di un sw per la gestione dei profili e delle versioni ...
 
Documento di approfondimento - Progetto CONTACT
Documento di approfondimento - Progetto CONTACTDocumento di approfondimento - Progetto CONTACT
Documento di approfondimento - Progetto CONTACT
 
Tesi Tamiazzo09
Tesi Tamiazzo09Tesi Tamiazzo09
Tesi Tamiazzo09
 
Tesi Case Roberto
Tesi Case RobertoTesi Case Roberto
Tesi Case Roberto
 
Documento di approfondimento
Documento di approfondimentoDocumento di approfondimento
Documento di approfondimento
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 
Tesi_Adamou
Tesi_AdamouTesi_Adamou
Tesi_Adamou
 
Tesi_Adamou
Tesi_AdamouTesi_Adamou
Tesi_Adamou
 
Documentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnaloDocumentazione progetto software - IoSegnalo
Documentazione progetto software - IoSegnalo
 
Project Management
Project Management Project Management
Project Management
 
Servizi nei sistemi informativi basati su web
Servizi nei sistemi informativi basati su webServizi nei sistemi informativi basati su web
Servizi nei sistemi informativi basati su web
 
TesiEtta
TesiEttaTesiEtta
TesiEtta
 
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
Classificazione delle segnalazioni cliente in base alla rilevanza secondo tec...
 
Realizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishingRealizzazione di un workflow integrato per la rilevazione di domini phishing
Realizzazione di un workflow integrato per la rilevazione di domini phishing
 
Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...Studio e implementazione di uno strumento di configurazione e visualizzazione...
Studio e implementazione di uno strumento di configurazione e visualizzazione...
 

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

  • 1. 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 neurologia Relatore Laureando Prof. Maurizio Fermeglia Luca Sandonato Anno Accademico 2009/2010
  • 2. Sommario 1 - Introduzione ................................................................................................................................................. 3 2 - 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 ......................................................................................................................... 14 3 - 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 ........................................................................................................................... 29 4 - Realizzazione della base di dati.................................................................................................................. 30 4.1 - Viste .................................................................................................................................................. 31 4.2 - Stored Procedure .............................................................................................................................. 32 5 - Realizzazione dell’interfaccia utente ......................................................................................................... 37 5.1 - Creazione delle maschere ................................................................................................................. 37 5.2 - Generazione del codice vba .............................................................................................................. 40 6 - Conclusioni.................................................................................................................................................. 42 7 - Bibliografia .................................................................................................................................................. 43 2
  • 3. 1 - Introduzione Questa tesi tratta la realizzazione di un’applicazione per la gestione delle visite mediche ad uso personale del responsabile della “Stroke Unit” della clinica neurologica di Cattinara. L’obiettivo finale sarà la realizzazione di un software indipendente dalla struttura informatica ospedaliera che verrà usato localmente dal solo medico responsabile del reparto, o al massimo da qualche stretto collaboratore. Il prototipo realizzato permetterà la gestione dei pazienti ricoverati presso la clinica e organizzerà tutte le visite mediche sostenute. Essendo il progetto su misura ed indipendente dai servizi informatici preesistenti, si renderà necessario lo sviluppo di una base di dati in grado di gestire tutti i dati richiesti. Successivamente si procederà alla realizzazione di un’interfaccia utente. Nelle seguenti pagine verrà illustrato in modo dettagliato i percorso seguito per 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 utente Si concluderà con una quantificazione del lavoro svolto e una valutazione di eventuali futuri miglioramenti o aggiunte al software. 3
  • 4. 2 - Analisi Nei seguenti paragrafi procederemo ad un’analisi dettagliata di tutti i requisiti del committente cercando di organizzarli nel modo più efficace possibile. Data la presenza di numerosi termini medici da organizzare in elenchi si procederà escludendoli dalla sintesi iniziale dei requisiti per includerli direttamente nella strutturazione dei dettagli. 2.1 - Requisiti: intervista col committente. Durante il primo incontro con il medico responsabile sono state elencate le principali caratteristiche del programma da realizzate. Successivamente verrà fornito un documento contenente i numerosi elenchi di termini medici la cui presenza è necessaria alla realizzazione del progetto. Dall’intervista risulta la necessità di realizzare un database per la gestione delle visite mediche eseguite dal responsabile della “stroke unit” della clinica neurologica di Cattinara di Trieste. Il progetto non si appoggerà a nessuna base di dati o struttura informatica esistente e sarà ad uso esclusivo del responsabile ed alcuni suoi stretti collaboratori. Il database in questione sarà gestito da un’interfaccia utente che permette in maniera intuitiva di gestire una semplice anagrafica dei pazienti e le loro visite mediche. Le visite mediche potranno essere di tre tipologie differenti: ricovero, prima visita e visita successive, ciascuna con dettagli ed esami che possono essere comuni o specifici del tipo di visita considerato. Principalmente sono composte da moduli da compilare, le cui specifiche verranno elencate in modo dettagliato successivamente. Nelle visite è necessario poter inserire una o più immagini relative ad una tipologia specifica d’esame. Sarà possibile elencare dei farmaci prescritti che dovranno essere organizzati per tipologia. 4
  • 5. Non sono stati espressi requisiti riguardanti la sicurezza della base di dati o dell’interfaccia. Per quanto riguarda i software da utilizzare, si è richiesto l’utilizzo di MS Access 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 dettagli Una volta individuate le linee guida possiamo procedere ad una analisi dettagliata degli elementi costituenti del progetto. A questo scopo sono stati individuati dei termini di rilievo che racchiudono dei concetti base ben distinti che risulteranno essenziali nella successiva fase di progettazione della base di dati. Come accennato nell’intervista col committente, in questa fase si userà un elenco fornito dal responsabile della clinica, contenente tutti i dettagli tecnici e le terminologie mediche relative ai vari moduli degli esami. 5
  • 6.  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
  • 7. 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 prossima o Esame obiettivo o 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 7
  • 8. 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 Altro o 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 PFO o Altri esami:  ECG o Normale o Anormale  Consulenze specialistiche o Terapia durante il ricovero e alla dimissione:  Farmaci prescritti: o In atto o Nuovo farmaco prescritto o Note 8
  • 9. 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
  • 10.  MCV  Uricemia  Folati  B12  Set trombofilico completo  INR o 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 Altro o 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
  • 11. 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
  • 12. 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 Altro o 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 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 12
  • 13. 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
  • 14. 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  Atipici Nota: E’ stato fornito un elenco di farmaci “generico” visto che sarebbe impossibile 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 termini Nella seguente tabella vengono elencati i termini più significativi ricavati durante l’analisi. Ad essi viene associata una breve descrizione con eventuali sinonimi 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 viene Paziente sottoposto ad una delle - Visita differenti tipologie di visita Elemento principale della Ricovero, Paziente, Visita base di dati, contiene i prima visita, destinazione 14
  • 15. 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 possibili Destinazione destinazioni a seguito della - Visita dimissione dimissione nei casi di visite di ricovero. Ogni visita puo’ includere una Consulenza o piu’ consulenze - Visita Specialistica specialistiche Ogni visita deve includere Diagnosi una diagnosi all’ingresso che - Visita all’ingresso descriva la motivazione che ha portato alla visita stessa. A seconda del tipo di visita Tipo terapia possono essere associate - Visita, farmaco tipologie differenti di terapia Ogni terapia di ciascuna visita richiede la presenza di un Categoria, tipo Farmaco Medicinale elenco di farmaci prescritti terapia, visita con relative note. Ogni farmaco appartiene ad Categoria Genere Farmaco una differente categoria Ogni visita puo’ richiedere Immagine l’inserimento di una o piu’ Neuroimaging immagini con relative note. Modulo da compilare Anamnesi contenente l’anamnesi del - Visita paziente Modulo da compilare Esame contenente l’esame Visita ematochimico ematochimico del paziente Modulo da compilare Neuroimaging contenente dettagli relativi Visita, immagine ad alcuni esami. Modulo da compilare Esame contenente l’esame Visita eultrasonografico ultrasonografico del paziente 15
  • 16. 3 - Progettazione della base di dati In questa fase sfrutteremo i risultati dell’analisi, in particolare il glossario dei termini per iniziare la progettazione della base di dati, iniziando a selezionare entità e relazioni che andranno a formare lo schema Entity-Reletionship, per poi passare alla valutazione delle cardinalità e la produzione finale dello schema logico. 3.1 - Progettazione concettuale: Dall’analisi delle entità e delle relazioni ricavate precedentemente possiamo produrre una prima versione dello schema E-R (Entity-Reletionship). Assieme allo schema E-R compiliamo un Dizionario delle Entità nel quale si provvede a fornire una breve descrizione della stessa elencandone gli attributi. Un altro elemento fondamentale è il Dizionario delle Relazioni che in modo simile al precedente ne descrive le relazioni, sottolineando gli attributi interessati. Infine si procede con l’analisi delle cardinalità, necessaria a capire a fondo le relazioni tra le entità ed essenziale per la realizzazione dello schema logico. 16
  • 17. 3.1.1 - Schema Entity-Relationship: 17
  • 18. 3.1.2 - Dizionario delle ENTITA’ Entità Attributi Descrizione - ID_Paziente - Nome - Cognome - Data_Nascita - Indirizzo L’entità paziente elenca tutti i Paziente - Città dati personali dello stesso. - Codice_Fiscale - Telefono - Email - Note Generalizzato in Ricovero, Prima Visita - visita e Visita successiva. - ID_Visita - Data - Ora - Data_Insorgenza_Disturbo - Ora_Insorgenza_Disturbo Rappresenta la tipologia di visita - NIH_Ingresso Ricovero 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 visita Prima 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 elenca Visita successiva - Esame_Obiettivo tutte le voci necessarie al - ECG medico. - NIH - RANKIN Generalizzato in: Diagnosi Documento All'ingresso, Esame obiettivo, ricovero - Destinazione dimissione, Anamnesi, Esame ematochimico, Neuroimaging, 18
  • 19. Esame ultrasonografico, Consulenza specialistica, Terapia. Generalizzato in: Diagnosi All'ingresso, Anamnesi ed EON, Documento Ultimo esame ematochimico, Prima visita - Neuroimaging, Esame ultrasonografico, Consulenza specialistica, Terapia. Generalizzato in: Esame obiettivo, Ultimo esame Documento ematochimico, Neuroimaging, - Visita successiva Esame ultrasonografico, Consulenza specialistica, Terapia. Indica il tipo di diagnosi - ID_Diagnosi Diagnosi effettuata dal medico al - Nome All'ingresso 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 compilati Anamnesi - 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
  • 20. - Malattie_cardiovascolari - Fumo - Ipertensione - Diabete_Rischio - Dislipidemia_Rischio - Cardiopatia - Arteriosatia_Obliterante_AAII - Nefropatia - Altro_Concomitanti - Patologica_Prossima - Note Rappresenta il documento - ID_Visita Esame obiettivo esame obiettivo redatto dal - Esame_Obiettivo medico durante la visita. - ID_Visita - Creatinina - Colesterolo_Totale - Colesterolo_HDL - Trigliceridi - HB Uno dei documenti compilati Esame - 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 compilati Neuroimaging - 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 compilati Esame - Stenosi5070 dal medico durante la visita, ultrasonografico - Stenosi50 elenca tutte le voci necessarie. - Stenosi 20
  • 21. - Shunt_Destro_Sinistro - Valvulopatia - Ipertrofia_DX - Ipertrofia_SX - Trombo - Aneurisma_Setto - PFO - ID_Terapia Generalizzata in Durante il Terapia - Tipo ricovero, alla dimissione, in atto, - Note prescritta - ID_Consulenza Documento riguardante una Consulenza - Descrizione visita specialistica, solitamente specialistica - Dettaglio presentato dal paziente. - ID_Destinazione_Dimissione Rappresenta la destinazione di Destinazione - Nome dimissione a seguito di una dimissione - Note visita di ricovero. - ID_Immagine File contenente un’immagine Immagine - Filename relativa ad un esame effettuato. - Note - ID_Farmaco Farmaco che può essere Farmaco - Nome prescritto dal medico. - Dettagli - ID_Categoria Categoria - Nome Distingue i farmaci per tipologia. - Note 3.1.3 - Dizionario delle RELAZIONI Relazioni Attributi Descrizione Collega in maniera univoca ogni visita al Accettazione - paziente che l’ha effettuata. Rappresenta i documenti compilati in Compilazione - ogni visita Specifica la visita a cui si riferisce la Inserimento - singola immagine Rappresenta i farmaci prescritti dal Prescrizione - medico per le varie tipologie di terapia. Appartenenza - Organizza i farmaci in categorie Ad una visita il paziente puo’ consegnare Presentazione - dei referti relativi a consulenze specialistiche 21
  • 22. 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à Paziente Accettazione Uno a Molti Visita Ricovero Compilazione Uno a Uno Documenti ricovero Immagine Inserimento Uno a Molti Neuroimaging Farmaco Prescrizione Molti a Molti Terapia Farmaco Appartenenza Uno a Molti Categoria Visita Presentazione Uno a Molti Consulenza specialistica Visita Associazione Molti a Molti Terapia Ricovero Valutazione Uno a Molti Diagnosi all’ingresso Ricovero Assegnazione Uno a Molti Destinazione dimissione 22
  • 23. 3.2 - Progettazione logica: La progettazione logica si occupa di tradurre lo schema concettuale in uno schema logico in grado di rappresentare gli stessi dati in maniera efficiente e corretta. In questo processo andranno valutate le prestazioni determinando i tipi di operazioni di cui la nostra base di dati si dovrà occupare, cercando di quantificare la mole di dati che dovrà affrontare. Queste considerazioni, assieme ad una attenta analisi dello schema E-R ci permetterà di effettuare delle modifiche allo schema stesso per ottimizzarlo il più possibile. Come risultato di queste modifiche avremo uno schema E-R ristrutturato che rappresenta la base di partenza per la creazione dello schema 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 All'ingresso 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
  • 24. 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 1000 3.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/giorno 3.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
  • 25. 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 Lettura 3.2.4 - Ristrutturazione: Procediamo ora con l’ottimizzazione dello schema E-R tenendo conto, dove necessario, dei dati forniti dalle precedenti tabelle. 3.2.4.1 - Eliminazione delle generalizzazioni Inizialmente si è pensato di sostituire le generalizzazioni con un semplice attributo da aggiungere alle entità generalizzate. Questo però implicava una futura mancanza di controllo completo sulla loro immissione, delegando all’interfaccia tutti i controlli. Si è quindi preferito aggiungere una relazione con un relativo attributo che raccogliesse i casi possibili contemplati dalle generalizzazioni. 25
  • 26.  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
  • 27. 3.2.4.2 - Raffinamento delle relazioni Dopo aver eliminato la generalizzazione dell'entità "visita" bisogna risolvere il problema delle corrispettive entità generalizzate, cioè "Documenti ricovero", “documenti prima visita" e "documenti visite successive". In questo caso sarebbe possibile considerare un'unica entità "documenti" alla quale aggiungere un attributo per differenziarne il tipo, per poi procedere all'inclusione 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 distinzione netta tra i vari documenti da compilare. In alcuni casi, ad esempio per “esame obiettivo”, si è preferito includerlo direttamente come attributo dell’entita’ “visita”, essendo unico per ogni visita. Anche l’entita’ “diagnosi all’ingresso” sarebbe potuta diventare un attributo dell’entità “visita” il cui valore sarebbe stato scelto da un elenco valori nell’interfaccia grafica, ma si e’ preferito mantenere il controllo dei dati 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
  • 28. 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 ristrutturato 28 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
  • 29. 3.2.5 - Schema logico Dallo schema E-R ristrutturato risulta immediato il passaggio allo schema logico, nel quale andiamo ad individuare per ogni tabelle la chiavi primarie ed 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 tblTerapia PK,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
  • 30. 4 - Realizzazione della base di dati. In questa fase si procede con la realizzazione della base di dati nel DBMS indicato 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 per ogni 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
  • 31. 4.1 - Viste Dopo la creazione delle tabelle è necessario preparare numerose viste per accedere ai dati delle tabelle. La creazione delle viste non è obbligatoria ma comporta 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 per organizzare dati provenienti da più tabelle evitando di accedere direttamente 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
  • 32.  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 Procedure Le stored procedure sono uno strumento per creare un livello di astrazione dal modello fisico del database garantendo un miglioramento prestazionale e della sicurezza. Inoltre permettono di intervenire sul database senza avere la necessità di modificare le applicazioni che lo utilizzano. In questo progetto non sono stati inseriti requisiti in merito a prestazioni o sicurezza ma si è preferito utilizzare lo stesso in alcuni casi delle stored procedure per evitare di delegare all’interfaccia delle operazioni critiche. Le stored procedure sono richiamate dall’interfaccia utente in Access e richiedono dei parametri in ingresso forniti dalle maschere. A questo scopo è 32
  • 33. stato necessario intervenire sui controlli delle maschere utilizzando il linguaggio VBA. Sono state create dieci stored procedure, di seguito ne riportiamo alcuni esempi 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/2011 15:42:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- 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)= NULL AS BEGIN -- 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) END END 33
  • 34. In questo caso la procedura è stata chiamata dall’interfaccia adp in Access alla 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/2011 15:54:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- 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
  • 35. @ID_Farmaco int = 0, @Note_Farmaco nvarchar (250)= NULL, @Temp1 int = 0, @Temp2 int = 0, @Temp3 int = 0 AS BEGIN -- 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) END END 35
  • 36. Di seguito riportiamo la chiamata alla procedura dalla maschera in Access. 36
  • 37. 5 - Realizzazione dell’interfaccia utente L’interfaccia utente è stata realizzata con Microsoft Access 2007 mediante la creazione di un progetto ADP (Access Data Project) connesso al database su SQL Server 2008 Express. Questa fase del progetto è stata svolta in parte assieme alla precedente, in particolare le viste e le stored procedure sono state create in concomitanza della creazione delle maschere, in base ai dati necessari e alle operazioni da svolgere. 5.1 - Creazione delle maschere Gli elementi costituenti l’interfaccia utente sono le maschere (o form), le quali sono state realizzate cercando di ridurre al minimo l’utilizzo di codice VBA, ma preferendolo comunque all’uso di macro realizzate con strumenti di generazione automatica. All’apertura del progetto adp è stata configurata la visualizzazione automatica di una maschera contenente i collegamenti alle operazioni principali: 37
  • 38. Da questo menù principale è possibile accedere alle funzionalità principali del 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 visite sostenute dal paziente, dal quale è possibile accedere al dettaglio delle stesse: 38
  • 39. In questa maschera è presente un sistema di gestione a schede che permette di 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 nuove visite mediche.  Nuovo Paziente: in questa maschera è possibile gestire un’anagrafica semplice del paziente. 39
  • 40.  Gestione farmaci: In questa maschera si possono gestire i farmaci e le relative categorie di appartenenza. 5.2 - Generazione del codice vba Come annunciato in precedenza si è cercato di limitare al massimo la creazione di codice vba per la gestione delle maschere in modo da far gestire il maggior numero di funzionalità possibile direttamente dal dbms. In questo modo si potranno evitare future modifiche all’interfaccia nel caso vi fosse la necessità di intervenire sul database. Oltre al codice utilizzato per la chiamata delle stored procedure ed il passaggio dei relativi parametri già menzionato, non è stato possibile evitare di utilizzare in molti punti alcune righe di codice per operazioni basilari come il passaggio di parametri durante l’apertura di una nuova maschera, l’aggiornamento di sottomaschere, operazioni di chiusura e apertura delle maschere e visualizzazione di messaggi di conferma in caso di eliminazione di record. L’unico elemento che ha richiesto un impegno maggiore è stato la gestione delle immagini, alla quale è richiesta la verifica della presenza di una cartella immagini sul disco, la sua eventuale creazione, la copia dei file immagine su disco e la relativa aggiunta di record al database, l’eliminazione delle singole 40
  • 41. immagini e la rimozione di tutte le immagini relative a una visita, in caso di rimozione della stessa. Riportiamo di seguito un estratto del codice. 41
  • 42. 6 - Conclusioni Lo sviluppo della base di dati e dell’interfaccia utente sono stati svolti con successo, 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- SQL Creazione 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 il quale ha già provveduto a visionare il lavoro più volte richiedendo correzioni o modifiche. Un eventuale sviluppo futuro potrebbe riguardare un miglioramento della veste grafica, l’aggiunta di funzionalità o la modifica di quelle esistenti. La fase di test permetterà di valutarne a fondo le caratteristiche ed indirizzarne le future modifiche prima della consegna finale del progetto. 42
  • 43. 7 - Bibliografia M. 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 di interrogazione”, Seconda edizione, Mc Graw-Hill Microsoft Developer Network, http://msdn.microsoft.com MasterDrive.it, http://forum.masterdrive.it 43