documento sistema informativo ambulatorio veterinario on-line

66
1 REALIZZAZIONE DEL PROGETTO AMBULATORIO VETERINARIO ON-LINE Ing. Nelson Firmani Dipartimento di Ingegneria Elettrica Università di L’Aquila, AQ 67040, Italy

Transcript of documento sistema informativo ambulatorio veterinario on-line

Page 1: documento sistema informativo ambulatorio veterinario on-line

1

REALIZZAZIONE DEL PROGETTO

AMBULATORIO VETERINARIO ON-LINE

Ing. Nelson Firmani

Dipartimento di Ingegneria Elettrica Università di L’Aquila, AQ 67040, Italy

Page 2: documento sistema informativo ambulatorio veterinario on-line

2

Ambulatorio veterinario on-line

Studio diFattibilita’ Requisiti Utente e specifiche Funzionali del Sistema

Progettazione Della Base di dati

Progettazione Del sistema

Page 3: documento sistema informativo ambulatorio veterinario on-line

3

Ambulatorio veterinario on-line

Studio

di

Fattibilita’

Page 4: documento sistema informativo ambulatorio veterinario on-line

4

Table of contents

1 Il contesto dello studio ................................................................................................................. 2

2 Progetto di massima ...................................................................................................................... 4

2.1 Obiettivi .............................................................................................................................................. 4

2.2 Funzioni del sistema .................................................................................................................. 4

2.3 Natura e caratteristica dei dati da gestire .................................................................. 5

2.4 Aspetti tecnologici ....................................................................................................................... 6

2.5 Analisi costi-benefici e analisi rischio .......................................................................... 7

Glossario dei termini ....................................................................................................................... 10

Page 5: documento sistema informativo ambulatorio veterinario on-line

5

STUDIO DI FATTIBILITA’

finalizzato alla realizzazione del progetto ambulatorio veterinario on-line

1 Il contesto dello studio

In Italia negli ultimi anni è cresciuta la presenza di strutture sanitarie veterinarie private. Dei 30000 veterinari iscritti nell’apposito albo tenuto dagli ordini provinciali dei medici veterinari, più del 60% esercita la libera professione sia in forma singola che associata. Inoltre nel settore si assiste ad una sempre maggiore specializzazione basata sul tipo di prestazione: Qualche anno fa, il veterinario si occupava prevalentemente di animali da reddito ospitati da aziende zootecniche. Oggi si parla sempre più di veterinario di città per indicare colui che si dedica quasi esclusivamente alla cura degli animali di compagnia, fra cui i più comuni sono il cane ed il gatto. La differente specializzazione si riflette sulle condizioni e modalità di esercizio delle attività e sulla tipologia ed organizzazione della struttura adibita all’esercizio dell’attività. In questo ambito si individuano i seguenti tipi di strutture sanitarie veterinarie private:

• Studio veterinario E’ l’ambiente privato dove vengono erogate le prestazioni che non comportano la degenza, oltre quella giornaliera.

• Ambulatorio veterinario E’ l’ambiente costituito da una sala d’attesa e da una o più sale per l’esecuzione delle prestazioni diagnostiche e terapeutiche. Uno o più medici erogano prestazioni sanitarie che possono comportare anche una degenza giornaliera.

• Cliniche veterinarie. Si tratta di strutture sanitarie più complesse ove è prevista la possibilità di una degenza superiore a quella giornaliera e la

Page 6: documento sistema informativo ambulatorio veterinario on-line

6

presenza di un medico veterinario 24 ore su 24.

Le strutture più ricorrenti sono senza dubbio gli ambulatori veterinari in quanto attraverso gli stessi viene fornito un servizio di più ampia richiesta. La realtà della citta di Teramo riguardo alla presenza di strutture sanitarie veterinarie private è la seguente:

• 4 ambulatori privati

• 1 clinica veterinaria

Da una indagine sui 4 ambulatori privati si è scoperto che non esiste una raccolta dei dati ambulatoriali informatizzati né tantomeno servizi on-line o siti web informativi. Tutti i dati connessi alla diagnosi e cura degli animali e alla gestione dei clienti proprietari degli animali è quasi assente o al più in forma cartacea. L’idea di un sistema informatico finalizzato alla raccolta dei dati ambulatoriali è nata dai colloqui tenuti con un medico veterinario proprietario di un ambulatorio sito nella città di Teramo. L’esigenza principale manifestata dal medico è stata quella di avere a disposizione in maniera semplice tutte le informazioni storiche relative ad un animale in cura presso l’ambulatorio. E quella di un sito web per la promozione del suo ambulatorio che non fosse solo una vetrina ma offrisse un servizio utile ai propri clienti. Se trascuriamo le problematiche relative alla sicurezza dei dati (esigenza non necessaria) dal punto di vista tecnologico il progetto è di facile attuazione con costi contenuti. L’unico fattore di criticità è rappresentato dall’impatto che l’introduzione delle nuove procedure informatizzate può produrre sulla preesistente organizzazione lavorativa. Se l’impatto è troppo traumatico, è inevitabile che nascano fenomeni di reazione che si oppongono al corretto funzionamento del nuovo sistema dovuto anche alla non sempre adeguata confidenza con le tecnologie informatiche da parte dei fruitori del servizio.

Page 7: documento sistema informativo ambulatorio veterinario on-line

7

2 Progetto di massima Il progetto di massima consiste nella descrizione degli elementi portanti e delle linee di realizzazione del progetto ambulatorio veterinario on-line. L’elaborazione del progetto di massima risponde principalmente all’esigenza di verificare la fattibilità del progetto e di stimarne costi, benefici e tempi, quindi la descrizione del progetto in termini di dettaglio è limitato alle componenti principali del sistema informativo e all’esame dei casi normali o generali.

2.1 Obiettivi

1. Promuovere l’ambulatorio veterinario attraverso un sito web e dotando la propria clientela di un servizio on-line innovativo.

2. Un nuovo scenario lavorativo nel quale sia davvero più semplice operare all’interno dell’attività ambulatoriale e dove l’uso del computer possa essere un valido aiuto. Ma nello stesso tempo evitare un impatto traumatico delle nuove procedure informatizzate su una preesistente organizzazione lavorativa.

2.2 Funzioni del sistema Sulla base dei numerosi colloqui avuti con il cliente si possono elencare alcuni dei requisiti utente che devono essere considerati nello studio di fattibilità. La prima parte del progetto riguarda:

• La creazione del sito http://www.ambulatorioonline.it/ La prima pagina deve consentire di valutare immediatamente il contenuto informativo di tutto il sito che potrebbe essere riassunto in 3 sezioni:

o Presentazione dell’ambulatorio veterinario

o Servizi di community quali ad esempio: FAQ e news inerenti il mondo animale.

o La fornitura di un servizio alla clientela dell’ambulatorio. Questo prevvede la possibilità di accedere attraverso internet alle informazioni riguardanti i propri animali trattati in ambulatorio. Secondo alcune interviste a possibili utenti è emerso che questo servizio è particolarmente gradito quando il proprio animale è ricoverato in ambulatorio e si vuole sapere

Page 8: documento sistema informativo ambulatorio veterinario on-line

8

come procede la degenza.

La seconda parte del progetto, in un certo senso il cuore del progetto, prevede la informatizzazione della raccolta dei dati durante l’attività ambulatoriale:

• L’inserimento dei dati ambulatoriali ad opera del veterinario deve essere semplice ed avvenire attraverso una interfaccia web: Gli strumenti di navigazione (link, bottoni, trova ecc. ) devono essere sempre ben visibili e possibilmente conservare la stessa posizione in tutte le pagine e consentire rapidamente di tornare alla pagina menù.

• La raccolta e la gestione dei dati deve riprodurre il più possibile l’abituale modo di lavorare del medico veterinario.

• Prevedere applicativi che facilitino la pubblicazione e la gestione delle informazioni minimizzando le modifiche delle pagine web del sito.

• Prevedere una gestione delle autorizzazione all’accesso del sistema

2.3 Natura e caratteristica dei dati da gestire Per poter memorizzare dati è pratica corrente progettare e realizzare un sistema i nformativo automatizzato che si basa sulla tecnologia delle basi di dati. In un ambulatorio veterinario è possibile individuare due settori applicativi:

1. Gestione degli animali assistiti (anagrafe del proprietario, informazioni sull’animale, dati clinici);

2. Gestione amministrativa dell’attività ambulatoriale: gestione del bilancio, dei capitoli spesa, di atti amministrativi.

Il progetto mira ad informatizzare il primo settore applicativo.

Page 9: documento sistema informativo ambulatorio veterinario on-line

9

L’insieme dei dati riguardanti il primo settore applicativo è costituita certamente da:

• dati numerici e testuali per la gestione dei clienti • dati numerici e testuali per la gestione degli animali assistiti; • dati numerici e testuali per la gestione dei dati clinici • dati immagine previsti per la memorizzazione della foto

dell’animale. Il volume dei dati previsto è basso.

Page 10: documento sistema informativo ambulatorio veterinario on-line

10

2.4 Aspetti tecnologici In questa sezione si presenta le diverse soluzioni tecnologiche offerte dal mercato in termini di ambiente di sviluppo di linguaggio di programmazione e di data base da utilizzare. Il panorama delle principali soluzioni disponibili sul mercato sono:

• Ambiente di sviluppo Microsoft su piattaforma Microsof: Per lo sviluppo di soluzioni web based la scelta è quasi obbligata: Windows 2000 Server o Windows NT, SQL Server 2000, IIS (Internet Information Server) come web server e tecnologia ASP.NET per la costruzione dell'applicazione. Asp è l'acronimo di ACTIVE SERVER PAGES, le istruzioni contenute nelle pagine ASP vengono elaborate dal web server per produrre vari effetti che vanno dalla formattazione automatica dei contenuti, all'accesso tramide ODBC ad informazioni remote indipendentemente dal database usato.

• Ambiente di sviluppo Java E’ portabile su qualsiasi piattaforma, non prendiamo in considerazione la classica piattaforma java, server Sun e database ORACLE in quanto il volume di dati scambiato nel nostro caso è basso ed inoltre questo tipo di piattaforma è tra le più costose.Prendiamo invece in considerazione l’ambiente di sviluppo Open Source Java su piattaforma Linux con qualunque database di qualità disponibile sul mercato (MySQL http://www.mysql.com e PostgreSQL http://www.postgresql.org sono le scelte tipiche). Entrambi questi database hanno dimostrato ottimi risultati quando utilizzati in progetti piccoli e medio/piccoli. Nel nostro caso specifico le due soluzioni sono certamente adeguate al volume di dati previsto. MySQL è Free Software, PostgreSQL è sotto licenza BSD, che è una licenza Open Source ma non Free Software. Quindi l’ambiente di sviluppo java su piattaforma linux con Mysql come data base relazionale e server Apache Tomcat come web server e contenitore JSP e servlet e di Eclipse (Eclipse è un editor di servlets e di JSP è scritto in Java ed è open source) come strumento di sviluppo potrebbe essere una scelta economicamente molto vantaggiosa

Page 11: documento sistema informativo ambulatorio veterinario on-line

11

grazie alla licenza Open source.

• Ambiente Open Source su piattaforma Linux con web server apache databse Mysql e linguaggio PHP per lo sviluppo dell’applicazione.

In conclusione i risparmi di natura economica in una scelta Open Source sono sensibili. Per quanto riguarda la scelta del linguaggio di programmazione di pagine dinamiche che interagiscono con le informazioni contenute in un database risiedente sul server web la scelta può essere tra CGI Perl, PHP, ASP, JSP e Servlet:

• CGI : ogni volta che viene richiamato uno script Cgi (scritto in un qualsiasi linguaggio), viene avviato un nuovo processo sul server Web, questo comporta problemi di sovraccaricamento del server.

• PHP: E’ un linguaggio di scripting simile al C molto semplice da apprendere. Tra i pregi del Php ci sono la velocità, la robustezza e il fatto che essendo Open Source si ha la visibilità sui sorgenti e la possibilità di correggere errori e apportare migliorie.

• ASP: Tecnologia legata all’ambiente Microsoft Windows con Internet Information Server. Le pagine ASP includono istruzioni scrite in “VBSCRIPT” oppure “JSCRIPT” che vengono elaborate dal server.

• JSP (Java Server Page) e Servlet: La Servlet è una classe java orientata alla comunicazione client-server, mentre la pagina JSP è un modo più semplice per scrivere servlet. Infatti una pagina jsp contiene codice HTML misto a codice Java che viene trasformata dal server container (es: APACHE Tomcat) in una servlet e quindi compilata. Non solo bisogna conoscere il linguaggio Java e le innumerevoli classi di cui è composto Ma anche una nuova filosofia di programmazione, quella orientata agli oggetti.

Page 12: documento sistema informativo ambulatorio veterinario on-line

12

Un breve confronto fra i linguaggi a disposizione porta ad individuare Php da abbinare a HTML CSS e Javascript come linguaggio da utilizzare per lo sviluppo dell’applicazione. La scelta è motivata in base alle seguenti considerazioni: PHP è open source, adatto alle dimensioni del progetto e rispetto a JSP consente un costo di sviluppo molto più basso. 2.5 Analisi costi-benefici e analisi rischio In questa parte del documento si evidenzieranno i costi di sviluppo e di esercizio del progetto. Le principali voci che costituiscono i costi di sviluppo riguarda in particolar modo l’ambiente di sviluppo software (già analizzato nella parte del documento relativo agli aspetti tecnologici) e il costo dovuto all’impegno di risorse umane. Per quanto riguarda i costi operativi o di esercizio occorre individuare la soluzione più idonea per la gestione del sito. Escluse a priori le soluzioni completamente interna (homing) per i costi elevati e completamente esterna (outsourcing), in quanto l’inserimento dati deve essere eseguito dal medico veterinario, restano da confrontare due possibili soluzioni:

• HOUSING La soluzione che lascia la maggiore libertà di gestione all'utente è quella che prevede l'acquisto di un server e di software specifico. L'utente, una volta realizzato il sistema, potrà stipulare un contratto di housing con un Internet Access Provider, che inserirà il server nella sua rete locale collegata ad Internet. Ma i problemi hardware di un computer in housing non possono, ovviamente, essere risolti da remoto e inoltre le spese di acquisto del server e di gestione di hardware e sistema operativo sono consistenti. Si potrebbe adottare la soluzione noleggio server. Il mercato attualmente offre questo tipo di soluzione al prezzo di circa 250 Euro mensili.

• HOSTING Un contratto di hosting prevede la possibilità per il cliente di operare sul server del provider in relativa autonomia, limitatamente allo spazio assegnatogli. I vantaggi di tale soluzione sono evidenti:

Page 13: documento sistema informativo ambulatorio veterinario on-line

13

l'utente non si deve fare carico del costo dell'hardware e non ha inoltre bisogno di reclutare personale tecnico in grado di gestirlo. A ciò bisogna aggiungere che il costo dell' hosting, a parità di banda disponibile, è di norma molto più basso di quello di un normale housing. Il costo di un contratto di hosting dipende da fattori come il livello di autonomia operativa e la qualità del servizio (il cui primo parametro di valutazione è ovviamente costituito dalle dimensioni della banda disponibile). La macchina del provider ospita il server dell’azienda e può essere amministrata a distanza in alcune sue funzionalità: nei contenuti delle pagine Web, caselle di posta, con strumenti di gestione e analisi degli accessi al sito, attraverso la configurazione di applicazioni quali mailing list e consultazioni di database online. Il mercato attualmente offre questo tipo di soluzione a partire da 60 Euro l’anno. Vedi tabella 2

Tabella Server Dedicati

Offerte Intel Celeron

CPU RAM HD Traffico mensile

Costo di attivazione

Canone mensile (Euro)

Intel Celeron 1.3 512MB 60GB 700GB Gratuito 199,00

Intel Celeron 1.3 1 GB 60GB 700GB Gratuito 199,00 OFFERTA

Intel Celeron 1.3 1 GB (2) 60GB 700GB Gratuito 258,00

Intel Celeron 1.7 512MB 60GB 700GB Gratuito 199,00 OFFERTA

Intel Celeron 1.7 1 GB 60GB 700GB Gratuito 238,00 Intel Celeron 1.7 1 GB (2) 60GB 700GB Gratuito 278,00

Offerte Intel Pentium 4

CPU RAM HD Traffico mensile

Costo di attivazione Canone mensile

Intel Pentium 4 2.0 512MB 60GB 700GB Gratuito 238,00

Intel Pentium 4 2.0 512MB 80GB 700GB Gratuito 258,00

Intel Dual Xeon

CPU RAM HD Transfer Costo di attivazione Canone mensile

Intel Dual Xeon 2.0 512MB 73GB SCSI 700GB Gratuito 398,00

Page 14: documento sistema informativo ambulatorio veterinario on-line

14

Intel Dual Xeon 2.0 1 GB (2) 73GB

SCSI 1200GB Gratuito 498,00

Intel Dual Xeon 2.0 1 GB (2) 120GB 1200GB Gratuito 498,00

Tabella 1 (dati eurosito.it)

Page 15: documento sistema informativo ambulatorio veterinario on-line

15

Tabella offerta hosting

Piano STANDARD Hosting Linux con Dominio Sistema operativo Linux RedHat 1 Dominio .com, .net, .org, .it 100 MB di spazio disco 10 e-mail alias e-mail illimitati 2 GB di Trasferimento Mensile Pannello di controllo Cpanel Supporto PHP4, CGI/Perl, MySQL

60,00 € l'anno

Piano PROFESSIONAL Hosting Linux con Dominio Sistema operativo Linux RedHat 1 Dominio .com, .net, .org, .it 200 MB di spazio disco 20 e-mail alias e-mail illimitati 3 GB di Trasferimento Mensile Pannello di controllo Cpanel Supporto PHP4, CGI/Perl, MySQL

90,00 € l'anno

Piano ADVANCED Hosting Linux con Dominio Sistema operativo Linux RedHat 1 Dominio .com, .net, .org, .it 500 MB* di spazio disco illimitate e-mail alias e-mail illimitati 6 GB** di Trasferimento Mensile Pannello di controllo Cpanel

135,00 € l'anno

Page 16: documento sistema informativo ambulatorio veterinario on-line

16

Supporto PHP4, CGI/Perl, MySQL Tabella 2 (dati eurosito.it) L' hosting costituisce un buon compromesso tra flessibilità del sistema e difficoltà di gestione, ad un costo decisamente più contenuto di quello dell' housing. In termini di benefici sebbene difficili da monetizzare il progetto sicuramente potrà produrre significativi miglioramenti del servizio reso alla clientela, una migliore gestione dell’attività ambulatoriale, una riduzione dei tempi di risposta e una riduzione dei supporti cartacei. Quanto ai rischi inerenti il progetto è rappresentato dall’impatto che l’introduzione delle nuove procedure informatizzate può produrre sulla preesistente organizzazione lavorativa. Se l’impatto è troppo traumatico, è inevitabile che nascano fenomeni di reazione che si oppongono al corretto funzionamento del nuovo sistema. In ultima analisi è da tenere presente che il sistema gestisce informazioni non critiche, per il quale un eventuale malfunzionamento comporta danni limitati.

Page 17: documento sistema informativo ambulatorio veterinario on-line

17

Glossario dei termini Applicativo Insieme di procedure (software) in grado di processare dati secondo modalità

definite DB, Data Base Archivio elettronico in grado di gestire e archiviare dati organizzati, sui quali

effettuare eventuali ricerche successive DBMS Data Base Management System – E’ il sistema che gestisce il database Hosting Servizio che prevede di ospitare applicativi e/o siti presso un computer di

proprietà del fornitore di servizi in modalità condivisa con altri utenti Housing Servizio che prevede di ospitare applicativi e/o siti presso un computer in

modalità non condivisa con altri utenti presso il fornitore di servizi HW HardWare: tutto ciò che costituisce fisicamente una unità di

elaborazione/computer Interfaccia utente

E’ la parte di un pacchetto SW orientata a facilitare il dialogo tra la macchina e l’utilizzatore (es.: in un database è la maschera di interrogazione con i vari strumenti che permette all’utilizzatore di estrarre le informazioni che cerca dall’archivio)

Internet La più grande rete dati pubblica mondiale ISP Internet Service Provider – Fornitore di servizi Internet JDBC Java data base connetivity (soluzione tecnologica per far comunicare

applivcativi java con qualunque database Open Source Si dice di programmi di cui sia liberamente disponibile il sorgente ODBC Open data base connetivity (soluzione tecnologica per far comunicare

applicativi con qualunque database) Protocollo Modalità di interscambio di dati Server Sistema “centrale” cardine di una rete informativa SW SoftWare: insieme di procedure che rendono possibili il trattamento di

informazioni in modalità definita in ambiente di elaborazione dati automatico Web Browser E’ il software che consente di muoversi in Internet e di accedere alle risorse ivi

disponibili

Page 18: documento sistema informativo ambulatorio veterinario on-line

18

Page 19: documento sistema informativo ambulatorio veterinario on-line

19

Ambulatorio veterinario on-line

Requisiti Utente e

Specifiche Funzionali del Sistema

Page 20: documento sistema informativo ambulatorio veterinario on-line

20

Table of contents

1 Introduzione ........................................................................................................................................ 3

1.1 Obiettivo del documento ......................................................................... 3 1.2 Struttura del documento .......................................................................................................... 3

2 Requisiti utente ................................................................................................................................. 4

3 Requisiti funzionali ....................................................................................................................... 5

3.1 Gestione informazione on-line ............................................................................................ 5

3.1.1 Visualizzazione ................................................................................................................................ 5

3.2 Gestione cliente ............................................................................................................................. 6

3.2.1 Inserimento ........................................................................................................... 6 3.2.2 Cancellazione ....................................................................................................... 6 3.2.3 Ricerca ................................................................................................................................................ 6

3.3 Gestione attività ............................................................................................................................ 7

3.3.1 Registrazione .................................................................................................................................... 7

3.3.2 Visualizzazione ................................................................................................................................ 7

4 Diagramma di contesto ............................................................................................................... 8

4.1 Descrizione del diagramma di contesto ....................................................................... 9

4.1.1 Individuazione dei terminatori ............................................................................. 9 4.1.2 Flussi di dati in ingresso al sistema ..................................................................... 9 4.1.3 Flussi di dati in uscita dal sistema .......................................................................................... 9

5 Specifica delle funzioni ............................................................................................................. 11

5.1 Diagramma di flusso di livello 0 – DFD 0 ............................................................... 11

5.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0 ................................................ 13

5.2 Diagramma di flusso di livello 1 – DFD 2 ............................................................... 14

5.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2 ................................................ 15

5.3Diagramma di flusso di livello 1 – DFD 3 ................................................................ 16

5.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3 ................................................ 17

5.4 Dizionario dei dati .................................................................................................................... 19

6 Glossario termini ........................................................................................................................... 20

Page 21: documento sistema informativo ambulatorio veterinario on-line

21

1 Introduzione La raccolta dei requisiti nasce dai contatti preliminari che si sono tenuti con il Cliente per la realizzazione del progetto ambulatorio on line.

1.1 Obiettivo del documento Lo scopo che si prefigge questo documento è quello di raccogliere e formalizzare in modo chiaro le necessità dell'utente e stabilire un elenco di obblighi che il sistema deve soddisfare. Questo documento sarà alla base dell’intero sviluppo del progetto e costituirà la base da cui si ricaveranno i “Requisiti funzionali” e i diagrammi “DFD”.

1.2 Struttura del documento Il presente documento è così strutturato:

1. Introduzione: definisce gli obiettivi del documento.

2. Analisi dei requisiti utente: descrive la portata del progetto e individua gli utenti del sistema e le informazioni d’interesse per l’utente nel dominio considerato.

3. Analisi dei requisiti funzionali: descrive le funzionalità da automatizzare; tramite una specifica basata su “diagramma di contesto” e “DFD”.

Page 22: documento sistema informativo ambulatorio veterinario on-line

22

2 Requisiti utente Un ambulatorio veterinario per solo animali d’affezione, al fine di offrire un servizio sempre più vicino alle esigenze dei suoi clienti, vuole dotare la propria clientela della possibilità di accedere alle informazioni riguardanti i propri animali trattati in ambulatorio. A tal fine è necessario informatizzare la raccolta dei dati durante l’attività ambulatoriale. Il sistema prevede due scenari di uso, legati ai due tipi di utente: cliente (proprietario dell’animale) e veterinario (amministratore dell’ambulatorio). Al cliente (proprietario dell’animale o degli animali) il sistema deve presentarsi come un normale sito web la cui pagina introduttiva deve contenere una presentazione del servizio e una richiesta di identificazione dell’utente. Dopo aver inserito una username e una password (che certifica l’identità dell’utente) si accede ad una pagina che riassume: i dati principali del proprietario e un elenco cronologico delle prestazioni effettuate presso l’ambulatorio sui propri animali. I dati relativi agli animali assistiti sono la principale fonte di informazione del sistema informativo da realizzare. La maggior parte di questi dati concorrono alla definizione delle prestazioni effettuate (storico dell’assistito). Ogni prestazione registrata è costituita:

1. dal tipo di prestazione che può essere una visita, un ricovero, una dimissioni o un esame di laboratorio.

2. Dai dati sull’animale (foto, nome, specie, razza, sesso, età) 3. Data e ora in cui è stata effettuata la prestazione

Inoltre nel caso in cui la prestazione registrata è una visita il cliente può visualizzare informazioni più dettagliate quali diagnosi, terapia, dieta e farmaci. Il medico veterinario (amministratore dell’ambulatorio) gestisce i dati tramite una base di dati, un DBMS e un’interfaccia sviluppata in linguaggio Html. Dopo il login accede alla pagina principale costituita dal menù delle operazioni che può effettuare e dall’elenco degli animali attualmente ricoverati. Operando sui link presenti nella pagina il medico deve poter accedere, per ogni animale alla sua scheda (storico dell’assistito) che tiene traccia di tutte le prestazioni registrati presso l’ambulatorio. Inoltre per ogni prestazione il veterinario deve poter visualizzare informazioni più dettagliate:

1. nel caso di una visita:temperatura, peso, frequenza cardiaca, diagnosi, terapia, dieta, farmaci. 2. nel caso di un ricovero:numeroBox 3. nel caso di una dimissione: causa 4. nel caso di un esame di laboratorio: tipo esame, risultato, file esame.

Dei bottoni di navigazione deve permettere al veterinario di accedere a dei form per poter:

1. Aggiungere, se non presente nel data base, l’anagrafe di un nuovo cliente e relativa informazione sugli animali posseduti.

2. Registrare ogni prestazioni effettuate e relative informazioni. 3. Effettuare ricerche nel data base

Page 23: documento sistema informativo ambulatorio veterinario on-line

23

3 Requisiti funzionali 3.1 Gestione informazione on-line il sistema deve consentire ai clienti di consultare le informazioni relative a visite o ricoveri dei propri animali registrati dal veterinario. Le funzionalità sono: 3.1.1 Visualizzazione

• scheda animale i dati da fornire sono: username e password. i dati da visualizzare sono: nome, cognome, indirizzo e telefono del proprietario. E per ogni animale posseduto la lista delle prestazioni registrate in ambulatorio, una prestazione può essere una visita, un ricovero, una dimissione e un esame di laboratorio; ed è caratterizzato dalla data e ora in cui è stata effettuata dal nome dalla specie dalla razza e dalla foto dell’animale coinvolto.

• dettaglio (solo nel caso in cui la prestazione è una visita o un ricovero o una dimissione) i dati da visualizzare sono: nome, specie, razza, sesso, età e foto dell’animale. data e ora della prestazione Diagnosi, terapia, dieta e farmaci

Page 24: documento sistema informativo ambulatorio veterinario on-line

24

3.2 Gestione cliente Il sistema deve consentire al veterinario di gestire i dati dei clienti e dei loro animali nella base dati. Le funzionalità sono: 3.2.1 Inserimento

• di un cliente (colui che è proprietario di animali). i dati da fornire sono: Codice fiscale, nome, cognome, indirizzo, telefono, username, password

• di un animale (posseduto dal cliente) i dati da fornire sono: Specie, nome, razza, sesso, data nascita, foto* (* indicano valori opzionali)

3.2.2 Cancellazione

• di un cliente (colui che è proprietario di animale) i dati da fornire sono: codice fiscale

• di un animale (posseduto dal cliente) i dati da fornire sono: nome e cognome cliente; specie e nome dell’animale

3.2.3 Ricerca

• di un cliente (colui che è proprietario di animali). i dati da fornire sono: nome, cognome i dati da visualizzare sono: Codice fiscale, nome, cognome, indirizzo, telefono, username, password e l’elenco degli animali posseduti

Page 25: documento sistema informativo ambulatorio veterinario on-line

25

3.3 Gestione attività Il sistema deve consentire al veterinario di registrare l’attività ambulatoriale nella base dati. Le funzionalità sono: 3.3.1 Registrazione

• di una visita i dati da fornire sono: temperatura*, peso*, fc*, diagnosi,terapia, motivo, farmaci*, dieta*. Data e ora della registrazione (* indicano valori opzionali)

• di un ricovero, che comprende la verifica disponibilità Box i dati da fornire sono: il numero Box. data e ora dell’inizio ricovero.

• di una dimissione i dati da fornire sono: il numero Box, causa data e ora della fine ricovero

• di un esame di laboratorio i dati da fornire sono: Tipo esame, risultato, file esame*. data e ora della registrazione (* indica valori opzionali)

3.3.2 Visualizzazione

• lista di animali ricoverati i dati da visualizzare sono: specie, nome, numero Box, data e ora inizio ricovero di tutti gli animali ricoverati.

• scheda di un animale i dati da fornire sono: codice animale i dati da visualizzare sono: codice fiscale, nome, cognome, indirizzo e telefono del proprietario dell’animale. specie, nome, razza, sesso, data di nascita e foto dell’animale. storico dell’animale (ovvero la lista delle prestazioni registrate in ambulatorio, una prestazione può essere una visita, un ricovero, una dimissione e un esame di laboratorio; ed è caratterizzato dalla data e ora in cui avviene.

• dettaglio prestazione i dati da visualizzare nel caso in cui la prestazione è una visita sono: temperatura, peso, fc, diagnosi,terapia, farmaci, dieta. i dati da visualizzare nel caso in cui la prestazione è un ricovero sono: numero Box. i dati da visualizzare nel caso in cui la prestazione è una dimissione sono: causa i dati da visualizzare nel caso in cui la prestazione è un esame di laboratorio sono: tipoEsame, fileAnalisi e risultato

Page 26: documento sistema informativo ambulatorio veterinario on-line

26

4 Diagramma di contesto L’interazione tra il sistema (cioè sostanzialmente l’insieme delle pagine web costituenti il software qui rappresentato) ed il mondo esterno sono rappresentabili mediante il seguente diagramma di contesto:

Gestione

AmbulatorioAmministratoreCliente

Amministratore

richiesta identificazione

dati identificazione

scheda ambulatorio

richiesta dettaglio

dettaglio

lista

ani

mal

i ric

over

ati

richi

esta

sch

eda

anim

ale

ricov

erat

osc

heda

ani

mal

e ric

over

ato

registra attiv

ità

riscontro attiv

ità

ricerca cliente

esito ricerca

aggiungi/canc. cliente

riscontro

Veterinario*

Veterinario*

* terminatore duplicato

lista prestazioni effettuate

dati cliente

richiesta inform. cliente

inform. cliente

Dati prestazione

Riscontro prestazione

Page 27: documento sistema informativo ambulatorio veterinario on-line

27

4.1 Descrizione del diagramma di contesto 4.1.1 Individuazione dei terminatori

� Cliente E’ il proprietario degli animali in cura presso l’ambulatorio. Ha la possibilità di visualizzare le cure prescritte al proprio animale, o di controllare come procede la degenza quando l’animale è ricoverato in ambulatorio.

� Veterinario Il veterinario ha la responsabilità di gestire le principali attività ambulatoriale. Esso ha il compito di inserire i dati di un cliente e dei suoi animali assistiti in ambulatorio e registrare ogni prestazione eseguita. Esso ha la possibilità di visualizzare l’elenco delle prestazioni effettuate sull’animale assistito.

4.1.2 Flussi di dati in ingresso al sistema

• dati identificazione I clienti forniscono i dati di identificazione (username e password)

• richiesta dettaglio I clienti chiedono di visualizzare le informazioni ambulatoriali del suo animale

• dati cliente Il veterinario fornisce i dati di un cliente da inserire nella base dati.

• richiesta inform. cliente Il veterinario chiede di visualizzare informazioni relative a un cliente

• richiesta scheda animale il veterinario chiede di visualizzare informazioni ambulatoriali su un animale assistito

• dati prestazione il veterinario fornisce i dati relativa alla prestazione che vuole registrare (le prestazioni possono essere: visita, ricovero, dimissione, esame di laboratorio).

4.1.3 Flussi di dati in uscita dal sistema

• richiesta identificazione Il sistema richiede ai clienti i dati per l’identificazione.

• lista prestazioni effettuate Il sistema visualizza l’elenco cronologico delle prestazioni effettuate presso l’ambulatorio sugli animali del cliente.

Page 28: documento sistema informativo ambulatorio veterinario on-line

28

• dettaglio Il sistema visualizza l’informazione richiesta dal cliente (visualizza informazione dettagliata su una prestazione effettuata presso l’ambulatorio).

• inform. cliente il sistema visualizza l’informazione richiesta dal veterinario

• lista animali ricoverati Il sistema visualizza la lista degli animali ricoverati.

• scheda animale Il sistema visualizza l’informazione richiesta dal veterinario

• riscontro prestazione il sistema visualizza la convalida della prestazione

Page 29: documento sistema informativo ambulatorio veterinario on-line

29

5 Specifica delle funzioni 5.1 Diagramma di flusso di livello 0 – DFD 0

richiesta identificazione

dati identificazione

sche

da a

mbu

lato

rioric

hies

ta d

etta

glio

detta

glio

lista animali ricoverati

richiesta scheda animale

ricoverato

scheda animale ricoverato

registra attività

riscontro attività

ricerca cliente

esito ricerca

aggi

ungi

/can

c. c

lient

eris

cont

ro

1.

rilasciainformazione

on-line

2.

gestioneclienti

proprietario

4.

creascheda

ambulatorio

animale

visita

esamiLab

ricovero

3.

gestioneattività

5.

crea listaanimali

ricoverati

scheda ambulatorio

lista animali ricoverati

scheda animale prestazioni

scheda prestazioni

Produce informazione

on-line

Lista prestazioni effettuate

informazione cliente

richiesta informazione cliente

Dati cliente

Dati prestazione

riscontro prestazione

Page 30: documento sistema informativo ambulatorio veterinario on-line

30

5.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0 Processo 1: produce informazione on-line

Nome Produce informazione on-line terminatore

Cliente

Scopo Fornisce l’elenco delle prestazioni effettute e per ognuna di esse poter richiedere dettagli.

Scenario principale di successo:

1. Il sistema richiede username e password 2. Il cliente inserisce username e password 3. Il sistema visualizza un elenco di prestazioni effettuate 4. Il cliente seleziona una prestazione effettuata 5. Il sistema visualizza il dettaglio della prestazione effettuata

Processo 2: gestione clienti (vedi DFD 2)

Nome Gestione clienti terminatore

Veterinario

Scopo inserire dati nuovi clienti, cancellare i dati clienti, visualizzare informazioni clienti.

Processo 3: gestione attività (vedi DFD 3)

Nome Gestione attività terminatore

Veterinario

Scopo Registra prestazioni, fornisce lista animali ricoverati, fornisce scheda

animale

Processo 4: crea scheda prestazioni

Nome Crea scheda prestazioni terminatore

Utilizzato dal processo 1

Scopo fornisce scheda prestazioni effettuate

Page 31: documento sistema informativo ambulatorio veterinario on-line

31

5.2 Diagramma di flusso di livello 1 – DFD 2

aggiungi

ricerca

cliente

esito ricerca

canc

ella

2.1

inseriredati cliente

2.2

cancelladati cliente

animale

2.3

ricercacliente

aggiun

gi/canc

. client

e

proprietario

proprietario

riscont

ro

inserimento

cancella

Dati cliente

cancella

Richiesta inform. cliente

Inform. cliente

Page 32: documento sistema informativo ambulatorio veterinario on-line

32

5.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2 Processo 2.1: inserire dati cliente

Nome Inserire dati cliente terminatore

Veterinario

Scopo Inserire i dati associati ad un cliente proprietario di animali che desidera curare i propri animali in questo ambulatorio. L’operazione include l’inserimento dei dati degli animali posseduti dal cliente

Scenario principale di successo:

1. Il veterinario inserisce i dati del cliente e dei relativi animali posseduti 2. Il sistema inserisce i dati nella base dati

Processo 2.2: cancella dati cliente

Nome Cancella dati cliente terminatore

Veterinario

Scopo Cancellare i dati associati ad un cliente. L’operazione include la cancellazione dei dati degli animali posseduti dal cliente.

Scenario principale di successo:

1. Il veterinario richiede informazioni su un cliente 2. il sistema visualizza le informazioni del cliente con l’informazione relativa agli

animali posseduti 3. il veterinario cancella i dati relativi ad un animale posseduto dal cliente 4. il sistema aggiorna la base dati

Processo 2.3: Ricerca cliente

Nome Ricerca cliente Terminatore

Veterinario

Scopo Cercare informazioni su un cliente Scenario principale di successo:

1. Il veterinario inserisce il codice fiscale del cliente. 2. Il sistema visualizza le informazioni del cliente.

Page 33: documento sistema informativo ambulatorio veterinario on-line

33

5.3Diagramma di flusso di livello 1 – DFD 3

dimissione

richiesta scheda animale

ricoverato

scheda animale ricoverato

esam

e la

bora

torio

ricovero

3.1

aggiornadati ricovero

3.2

verificadisponibilità

box

ricovero

3.3

inseriscidati visita

visita

visita

esamiLab

ricovero

3.4

inseriscidati esamiLab

riscontro

riscontro

3.5

crea schedaanimale

ricoverato

visita

risco

ntro

riscontro attivitàre

gist

ra a

ttivi

tàbox disponibile

riscontro box_non_disponibile

3.6

crea lista animali

ricoverati

lista animali ricoverati

Dati prestazione

riscontro prestazione

Page 34: documento sistema informativo ambulatorio veterinario on-line

34

5.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3 Processo 3.1: aggiorna dati ricovero

Nome Aggiorna dati ricovero terminatore

Veterinario

Scopo Registrazione della prestazione di ricovero se il numero Box assegnato è disponibile. Registrazione dell’attività di dimissione

Scenario principale di successo (caso registrazione della prestazione di ricovero):

1. Il veterinario inserisce il numero Box assegnato all’animale 2. il sistema verifica la disponibilità del Box. In caso affermativo registra l’attività

alla data e ora in cui si verifica, in caso negativo visualizza che il box è già occupato.

Scenario principale di successo (caso registrazione della prestazione di dismissione):

1. Il veterinario inserisce la causa della dimissione 2. il sistema registra la prestazione di dimissione alla data e ora in cui si verifica.

Processo 3.3: inserisci dati visita

Nome Inserisci dati visita terminatore

Veterinario

Scopo Inserire l’informazione associata alla prestazione di visita Scenario principale di successo:

1. il veterinario inserisce i dati della visita 2. il sistema inserisce i dati nella base dati

Processo 3.4: inserisci dati esami laboratorio

Nome Inserisci esamiLab Terminatore

Veterinario

Scopo Inserire l’informazione associata alla prestazione di un esame di laboratorio

Page 35: documento sistema informativo ambulatorio veterinario on-line

35

Scenario principale di successo:

1. Il veterinario inserisce i dati dell’esame di laboratorio 2. Il sistema inserisce i dati nella base dati

Page 36: documento sistema informativo ambulatorio veterinario on-line

36

Processo 3.5: crea scheda animale

Nome Crea scheda animale Terminatore

Veterinario

Scopo Fornire i dati ambulatoriali riguardanti un animale Scenario principale di successo (caso animale non ricoverato):

1. Il veterinario inserisce il codice dell’animale 2. Il sistema visualizza lo storico dell’animale

Scenario principale di successo (caso animale ricoverato):

1. Il veterinario seleziona l’animale ricoverato dalla lista degli animali ricoverati. 2. Il sistema visualizza lo storico dell’animale

Processo 3.6: Crea lista animali ricoverati

Nome Crea lista animali ricoverati Terminatore

Veterinario

Scopo Fornire la lista degli animali attualmente ricoverati Scenario principale di successo :

1. Il veterinario accede al sistema. 2. Il sistema visualizza la lista degli animali attualmente ricoverati

Page 37: documento sistema informativo ambulatorio veterinario on-line

37

5.4 Dizionario dei dati dati identificazione = username + password

lista prestazione effettuata = {(foto) + nome + specie + razza + data prestazione + tipo prestazione} * dati riferiti ad animale*

data prestazione = giorno + mese + anno + ora +minuti + secondi

tipo prestazione = [visita | ricovero | dimissione | esame laboratorio]

dettaglio = animale + data prestazione + diagnosi + terapia + farmaci + dieta

animale = (foto) + nome + specie + razza + sesso + data nascita

data nascita = giorno + mese + anno

dati cliente = proprietario + animale

proprietario = nome + indirizzo + telefono + codice fiscale + username + password

dati prestazione = [visita | ricovero | dimissione | esami lab]

visita = (temperatura) + (peso) + (freq. Cardiaca) + diagnosi + terapia + (farmaci) + (dieta) + data prestazione

ricovero = numeroBox + data inizio

data inizio giorno + mese + anno + ora +minuti + secondi

dimissione = causa + data fine

data fine = giorno + mese + anno + ora +minuti + secondi

esami Lab = tipo esame + (file analisi) + risultato + data prestazione

lista animali ricoverati = {(foto) + nome + specie + razza +data ricovero + numeroBox}

scheda animale = proprietario + animale + lista prestazione effettuata

Page 38: documento sistema informativo ambulatorio veterinario on-line

38

6 Glossario termini Ambulatorio veterinario E’ la struttura avente organizzazione autonoma dall’ambiente privato,

presso la quale uno o più medici veterinari erogano prestazioni sanitarie

Animale d’affezione Animali da compagnia, fra cui i più comuni sono cane ed il gatto Base di dati Archivio elettronico in grado di gestire e archiviare dati organizzati,

sui quali effettuare eventuali ricerche successive Bottoni di navigazione L’insieme degli elementi grafici presenti nelle pagine web per poter

richiamare altre pagine Cliente Chi ricorre alle prestazioni di qualcuno. Nel contesto del documento è

il proprietario di animali che ricorre alle prestazioni del medico veterinario per curare i propri animali

Convalida Conferma DBMS Data Base Management System – E’ il sistema che gestisce il database Degenza Nel contesto del documento è degente l’animale ricoverato

nell’ambulatorio veterinario Diagnosi Definizione della natura di una malattia e sua classificazione in base ai

sintomi Diagramma DFD Formalismo grafico di facile lettura per descrivere le funzioni del

sistema Diagramma di contesto E’ un diagramma DFD che evidenzia l’interazione tra il sistema ed il

mondo esterno Dizionario dati E’ un elenco organizzato di tutti gli elementi di dati che riguardano il

sistema File esame E’ il risultato (in forma elettronica) fornito dal laboratorio di analisi Form Pagina in HTML che contiene dei campi riempibili con testo, dei check

e dei menu a discesa per scegliere tra diverse opzioni, quindi inviare al sistema

HTML Linguaggio per scrivere pagine web Informazione on-line Informazione ricevuta quando si è connessi ad internet Link Testo o immagine presente sulle pagine Internet che, con un click,

trasporta in un'altra pagina Login Viene considerato login quando sia necessario digitare un username e

password per accedere a dei servizi NumeroBox Numero che identifica la cuccia di ricovero degli animali Prestazione Ciò che il veterinario adempie: può essere una visita un esame di

laboratorio un ricovero o una dimissione Razza Nel contesto del documento l’insieme degli animali della stessa specie Riscontro Verifica Scheda animale Scheda che riassume i dati dell’animale Storico dell’animale Scheda costituita da un elenco di prestazioni effettuate sull’animale da

quando è in cura presso l’ambulatorio. Terapia Insieme dei mezzi per curare una malattia Terminatore E’ un elemento presente nei diagrammi di flusso e rappresenta una

persona o una organizzazione al di fuori del sistema modellato (viene anche detto interfaccia)

Web Un ipertesto distribuito, multimediale, interattivo, fluido

Page 39: documento sistema informativo ambulatorio veterinario on-line

39

Ambulatorio veterinario on-line

Progettazione

Della

Base di dati

Page 40: documento sistema informativo ambulatorio veterinario on-line

40

Table of contents

1 Introduzione ........................................................................................................................................ 3

1.1Obiettivo del documento ........................................................................................................... 3

1.2 Riferimenti ........................................................................................................................................ 3

1.3 Struttura del documento .......................................................................................................... 3

2 Progettazione dello schema concettuale ........................................................................ 4

2.1 Schema ER (Entity - Relationship) .................................................................................. 4

2.1.1 Scelte fatte nella fase di progettazione concettuale ......................................................... 5

2.2 Glossario delle entità e delle relazioni ......................................................................... 6

2.3 Volume dei dati .............................................................................................................................. 7

3 Progettazione logica ...................................................................................................................... 8

3.1 Schema ER ristrutturato .......................................................................................................... 9

3.2 Ristrutturazione dello schema E-R ................................................................................ 10

3.2.1 Specifica di vincoli esterni ........................................................................................................ 10

3.3 Schema Relazionale ................................................................................................................. 11

3.3.1 Ristrutturazione dello schema logico ................................................................................... 11

3.4 Schema Logico ............................................................................................................................. 12

4 Progettazione fisica ..................................................................................................................... 13

4.1 Creazione del data base ........................................................................................................ 13

Page 41: documento sistema informativo ambulatorio veterinario on-line

41

1 Introduzione L’architettura della base di dati verrà descritta a partire dallo schema concettuale fino ad arrivare al codice SQL sviluppato per l’implementazione del progetto.

1.1 Obiettivo del documento Lo scopo che si prefigge questo documento è quello di spiegare nel dettaglio tutte le scelte effettuate nella progettazione della base di dati, sulla base delle richieste dell’utente formalizzate nei requisiti utente e funzionali.

1.2 Riferimenti [1] “Requisiti Utente e Specifiche funzionali” [2] “Progettazione del sistema”

1.3 Struttura del documento Il presente documento è così strutturato:

1. Introduzione: definisce gli obiettivi del documento e riporta i riferimenti.

2. Progettazione schema concettuale: descrive lo schema ER e le scelte effettuate.

3. Progettazione logica e fisica : trasformazione delle specifiche concettuali sui dati in una vera e propria base di dati relazionale in SQL.

Page 42: documento sistema informativo ambulatorio veterinario on-line

42

2 Progettazione dello schema concettuale 2.1 Schema ER (Entity - Relationship)

Va_in

(0,N) (0,N)

Ha Codice Anagrafe canina

nome specie

fileFoto dataNascita

sesso razza Animale

(1,1)

nome

userName

password

telefono

indirizzo cf

Proprietario

(1,N)

(0,N)

Ricovero concluso

numeroBox Ricovero in corso

Data_oraFine causa

Data_oraInizio

Ricovero (1,1)

(1,1)

EsamiLab

fileAnalisi tipoEsame risultato

data_ora

EffettuaEsame

(1,1)

data_ora

peso

diagnosi fc

temperatura

motivo dieta

farmaci cura

Visita EffettuaVisita

terapia farmaci dieta

codice

Page 43: documento sistema informativo ambulatorio veterinario on-line

43

2.1.1 Scelte fatte nella fase di progettazione concettuale Introduzione delle entità:

• Dalle specifiche si evince che i clienti dell’ambulatorio devono avere animali. Quindi introduciamo l’entità PROPRIETARIO (chi possiede l’animale) e l’entità ANIMALE (animale posseduto)

• Dalle specifiche si nota che l’animale può effettuare una visita, un esame di laboratorio un ricovero, o una dimissione qualora è stato ricoverato. Quindi introduciamo le entità VISITA (contiene i dati di una visita) ESAMILAB (contiene i dati di un esame) e l’entità RICOVERO che ha RICOVERO IN CORSO e RICOVERO CONCLUSO come generalizzazione.

Introduzione delle relazioni:

• Tra le entità proprietario e animale introduciamo la relazione HA per modellare il requisito di possesso “un proprietario possiede almeno un animale, un animale ha un solo proprietario”

• Tra le entità animale e visita introduciamo la relazione EFFETTUA VISITA per modellare il requisito “ un animale può non effettuare visite o effettuare più visite, i dati di una visita sono relativi ad uno ed un solo animale”

• Tra le entità animale e esami laboratorio introduciamo la relazione EFFETTUA ESAME per modellare il requisito “ un animale può non effettuare esami o effettuare più esami, i dati di un esame sono relativi ad uno ed un solo animale”

• Tra le entità animale e ricovero introduciamo la relazione VA_IN per modellare il requisito “ un animale può non essere mai ricoverato o subire più ricoveri, i dati di un ricovero sono relativi ad uno ed un solo animale”

Scelta degli identificatori:

• Per l’entità proprietario si è scelto l’attributo CODICE FISCALE come chiave primaria, e gli attributi USERNAME e PASSWORD come identificatori non primari

• Per l’entità animale viene associato come chiave un CODICE numerico

• Per l’entità ricovero viene assegnato un identificatore esterno tra l’attributo DATA_ORA_INIZIO e l’entità ANIMALE perché si ritiene che nello stesso istante non può essere ricoverato più di un animale.

• Per l’entità visita viene assegnato un identificatore esterno tra l’attributo DATA_ORA e l’entità ANIMALE perché si ritiene che nello stesso istante non può essere visitato più di un animale.

• Per l’entità esamiLab viene assegnato un identificatore esterno tra l’attributo DATA_ORA e l’entità ANIMALE perché si ritiene che nello stesso istante non può essere effettuato un esame su più animali.

Page 44: documento sistema informativo ambulatorio veterinario on-line

44

2.2 Glossario delle entità e delle relazioni Nome Entità Descrizione Attributi Identificatore

Proprietario I dati di un cliente proprietario di animali Cf,nome,indirizzo, username, password, telefono

PrimaryKey{Cf} Unique{username, Password}

Animale I dati dell’animale posseduto dal proprietario Specie, nome, razza, sesso, dataNascita, file foto, codice

PrimaryKey{Codice}

Visita I dati relativi alle visite effettuate dagli animali

Data_ora, temperatura, peso, fc, diagnosi, terapia, farmaci, dieta

Identificatore esterno con Animale{codice} e data_ora

EsamiLab I dati relativi agli esami di laboratorio Effettuati dagli animali

Data_ora, tipoEsame, file esame, risultato

Identificatore esterno con Animale{codice} e data_ora

Ricovero Può essere in corso o concluso Data inizio

Identificatore esterno Con Animale{codice} e data_ora

Ricovero in corso

Generalizzazione di Ricovero numeroBox

Ricovero Concluso

Generalizzazione di ricovero Data_fine, causa

Nome Relazione Descrizione Entità Coinvolte cardinalità motivazione

Ha Indica animali posseduti dal proprietario

Proprietario Animale

(1,N) (1,1)

Un proprietario deve avere almeno un animale Un animale è posseduto da un solo proprietario

Va_in Indica l’accettazione a un ricovero

Animale Ricovero

(0,N) (1,1)

un animale può non essere mai ricoverato o subire più ricoveri i dati di un ricovero sono relativi ad uno ed un solo animale

EffettuaVisita Indica l’effettuazione di una visita

Animale Visita

(0,N) (1,1)

un animale può non effettuare visite o effettuare più visite i dati di una visita sono relativi ad uno ed un solo animale

EffettuaEsame

Indica l’effettuazione di un esame di laboratorio

Animale EsamiLab

(0,N) (1,1)

un animale può non effettuare esami o effettuare più esami i dati di un esame sono relativi ad uno ed un solo animale

Page 45: documento sistema informativo ambulatorio veterinario on-line

45

2.3 Volume dei dati

Tavola dei volumi (riferiti in un anno) Concetto <Nome> Tipo E/R Volume

<Dim> proprietario

ha

animale

ricovero

va_in

visita

effettua visita

EsameLab

Effettua esame

E

R

E

E

R

E

R

E

R

200

400

400

100

100

1200

1200

400

400

Mediamente un animale subisce un ricovero ogni 3-4 anni. 400*1/4=100

Mediamente un animale effettua 3 visite l’anno. 400*3=1200

Mediamente un animale effettua 1 esame di laboratorio l’anno. 400*1=400

Dei 200 clienti dell’ambulatorio mediamente ognuno possiede 2 animali.

Page 46: documento sistema informativo ambulatorio veterinario on-line

46

3 Progettazione logica L’ obiettivo della progettazione logica è tradurre lo schema concettuale in uno schema logico che rappresenti gli stessi dati:

• in ingresso:

� schema concettuale (diagramma ER);

� informazioni sul carico applicativo;

• in uscita:

� schema logico;

� vincoli aggiuntivi.

Page 47: documento sistema informativo ambulatorio veterinario on-line

47

3.1 Schema ER ristrutturato

(1,1)

(1,N)

nome

userName

password

telefono

indirizzo cf id_proprietario

Proprietario

Ha

Va_in

Data_oraInizio Data_oraFine

causa

numeroBox

tipo

id_ricovero

Ricovero (1,1) (0,N)

EffettuaVisita peso

diagnosi fc

temperatura data_ora

id_visita motivo dieta farmaci

terapia

Visita (1,1)

EsamiLab

id_esame

fileAnalisi tipoEsame risultato data_ora

(1,1)

EffettuaEsame

id_animale

nome specie

fileFoto dataNascita

sesso razza Animale

(0,N) (0,N)

Page 48: documento sistema informativo ambulatorio veterinario on-line

48

3.2 Ristrutturazione dello schema E-R

• Eliminazioni delle gerarchie (accorpamento delle entità figlie ricovero in corso e ricovero concluso nell’entità padre ricovero ).

• Sono stati introdotti identificatori ad hoc (es: id_esame) per non usare chiavi complesse nel

collegamento delle tabelle (chiavi composte da più attributi o basate su stringhe). 3.2.1 Specifica di vincoli esterni Nella ristrutturazione è necessario formulare dei vincoli esterni. In particolare dovremo specificare vincoli dovuti alla eliminazione delle generalizzazioni. Per tener conto delle proprietà della generalizzazione si aggiungono opportuni vincoli esterni, detti vincoli di generalizzazione, quindi le proprietà:

• istanze(Ricovero in corso) ∩ istanze(Ricovero concluso) = 0 • istanze(Ricovero in corso) ∪ istanze(Ricovero concluso) = istanze(Ricovero)

Page 49: documento sistema informativo ambulatorio veterinario on-line

49

3.3 Schema Relazionale traduzione dallo schema E-R ristrutturato ad uno schema logico equivalente del modello relazionale. In base alle regole relative alle associazioni uno a molti, è stato prodotto il seguente schema relazionale:

• Proprietario(id_proprietario, cf, nome, indirizzo, telefono, userName, password)

• Animale(id_animale, ha, specie, nome, razza, sesso, dataNascita, fileFoto)

• Ricovero(id_ricovero, va_in, dataInizio, dataFine, causa, numeroBox, tipo)

• Visita(Id_visita, effettuaVisita, data_ora, temperatura, peso, fc, diagnosi, terapia, farmaci, dieta, motivo)

• EsamiLab(id_esami, effettuaEsame, tipoEsame, data_ora, fileAnalisi, risultato) Sono presenti i seguenti vincoli di integrità referenziale (detti anche vincoli di chiave esterna):

• Proprietario.id_proprietario e Animale.ha

• Animale.id_animale e Ricovero.va

• Animale.id_animale e EsamiLab.EffettuaEsame

• Animale.id_animale e Visita.EffettuaVisita

3.3.1 Ristrutturazione dello schema logico

L’ultimo passo che porta ad avere un corretto schema logico è la ristrutturazione del medesimo. La ristrutturazione si rende necessaria per migliorare aspetti legati all’efficienza della base dati.

Ma visto il volume dei dati basso non è necessario ristrutturazioni verso l’efficienza.

Page 50: documento sistema informativo ambulatorio veterinario on-line

50

3.4 Schema Logico

1

Proprietario Id_proprietario Cf

Nome Indirizzo Telefono UserName Password

Animale

Id_animale Ha Specie

Nome Razza Sesso

DataNascita FileFoto

Visita Id_visita EffettuaVisita Data_ora Temperatura

Peso Fc Diagnosi Terapia Farmaci Dieta

Motivo

EsamiLab

Id_esame EffettuaEsame

TipoEsame Data_ora FileAnalisi

Risultato

Ricovero

Id_ricovero Va_in DataInizio DataFine

Causa NumeroBox Tipo

1

Page 51: documento sistema informativo ambulatorio veterinario on-line

51

4 Progettazione fisica

L’applicazione si appoggerà per la gestione/memorizzazione dei dati al DBMS MySQL (il cui uso è gratuito anche per fini commerciali, ma non la rivendita se viene incorporato in prodotti di terzi).

La versione di mysql usata non supporta l’integrità referenziale, quindi maggiore costo nella progettazione delle funzioni di inserimento dati che dovranno controllare l’integrità dei dati.

La connessione avverrà tramite la primitiva PHP : mysql_connect(host[,user] [,password])

Il nome associato alla base dati è “dbambulatorio”.

4.1 Creazione del data base Di seguito viene riportato il listato SQL utilizzato per la creazione delle tabelle.

# # Struttura della tabella `animale` # CREATE TABLE animale ( id_animale mediumint(8) unsigned NOT NULL auto_increment, ha mediumint(8) unsigned NOT NULL default '0', specie varchar(15) NOT NULL default '', nome varchar(20) NOT NULL default '', razza varchar(20) default NULL, sesso enum('femmina','maschio') NOT NULL default 'femmina', dataNascita date default NULL, fileFoto varchar(60) default NULL, PRIMARY KEY (id_animale) ) TYPE=MyISAM; # -------------------------------------------------------- # # Struttura della tabella `esamilab` # CREATE TABLE esamilab ( id_esame mediumint(8) unsigned NOT NULL auto_increment, effettuaEsame mediumint(8) unsigned NOT NULL default '0', tipoEsame enum('raggi','analisi sangue','analisi urina','analisi feci') default 'analisi sangue', data_ora timestamp(14) NOT NULL, fileAnalisi varchar(60) default NULL, risultato text, PRIMARY KEY (id_esame) ) TYPE=MyISAM; # -------------------------------------------------------- # # Struttura della tabella `proprietario` # CREATE TABLE proprietario ( id_proprietario mediumint(8) unsigned NOT NULL auto_increment, cf varchar(16) NOT NULL default '0', nome varchar(26) NOT NULL default '0', indirizzo varchar(30) default NULL, telefono varchar(10) NOT NULL default '0',

Page 52: documento sistema informativo ambulatorio veterinario on-line

52

userName varchar(20) NOT NULL default '0', password varchar(20) NOT NULL default '0', PRIMARY KEY (id_proprietario), UNIQUE KEY userName (userName,password) ) TYPE=MyISAM; # -------------------------------------------------------- # # Struttura della tabella `ricovero` # CREATE TABLE ricovero ( id_ricovero mediumint(8) unsigned NOT NULL auto_increment, va_in mediumint(8) unsigned NOT NULL default '0', dataInizio date default NULL, dataFine date default NULL, causa text, numeroBox int(8) NOT NULL default '0', tipo enum('inCorso','concluso') default NULL, PRIMARY KEY (id_ricovero) ) TYPE=MyISAM; # -------------------------------------------------------- # # Struttura della tabella `visita` # CREATE TABLE visita ( id_visita mediumint(8) unsigned NOT NULL auto_increment, effettuaVisita mediumint(8) unsigned NOT NULL default '0', data_ora timestamp(14) NOT NULL, temperatura char(3) default NULL, peso char(3) default NULL, fc char(3) default NULL, diagnosi text, terapia text, farmaci varchar(100) default NULL, dieta text, motivo enum('ricovero','dimissione','sterilizzazione','visita') default NULL, PRIMARY KEY (id_visita) ) TYPE=MyISAM;

Page 53: documento sistema informativo ambulatorio veterinario on-line

53

Scelte fatte:Gli attributi dataInizio, dataFine, data_ora sono di tipo TIMESTAMP e non del consueto DATETIME.Il tipo TIMESTAMP ha l’importante caratteristica di essere automaticamente inizializzato alla data e l’ora corrente al momento dell’inserimento se non altrimenti specificato o se si inserisce un valore null.TIMESTAMP ha come formato di visualizzazione yyyymmddhhmmss (il dbms mysql prevede numerose funzioni per la conversione dei formati di visualizzazione questo risulterà molto utile nella fase di implementazione).

Page 54: documento sistema informativo ambulatorio veterinario on-line

54

Ambulatorio veterinario on-line

Progettazione

Del

sistema

Page 55: documento sistema informativo ambulatorio veterinario on-line

55

Table of contents

1 Introduzione ........................................................................................................................................ 3

1.1 Obiettivo del documento ......................................................................................................... 3

1.2 Riferimenti ........................................................................................................................................ 3

1.3 Struttura del documento .......................................................................................................... 3

2 Progettazione del sistema .......................................................................................................... 4

2.1 Architettura Hardware ............................................................................................................. 4

2.1 Architettura software................................................................................................................. 5

2.2 Realizzazione Software ............................................................................................................ 6

2.2.1 Listato HomePage.html ............................................................................................................... 6

2.2.2 Listato Stilescheda.css .................................................................................................................. 8

2.2.3 Listato pg_scheda.php ................................................................................................................ 10

Page 56: documento sistema informativo ambulatorio veterinario on-line

56

1 Introduzione In questo documento verra descritto l’architettura hardware e software necessarie per la realizzazione del servizio.

1.1 Obiettivo del documento

Lo scopo che si prefigge questo documento è quello di descriver l’architettura hardware e software necessarie per la realizzazione del servizio 1.2 Riferimenti [1] “Requisiti Utente e Specifiche funzionali” [2] “Progettazione della base di dati”

1.3 Struttura del documento

Il presente documento è così strutturato:

1. Introduzione: definisce gli obiettivi del documento e riporta i riferimenti.

2. Architettura hardware : descrive le macchine necessarie per la realizzazione del servizio richiesto e la loro connessione.

3. Architettura software : descrive l’architettura software che verrà sviluppato.

Page 57: documento sistema informativo ambulatorio veterinario on-line

57

2 Progettazione del sistema 2.1 Architettura Hardware Per poter soddisfare le richieste dell’utente, sarà necessario che la struttura minima dell’ hardware sia costituita da un Server su piattaforma Windows 2000 al quale, tramite connessione alla rete Internet si consente l’accesso dei Client; gli utenti accedono per mezzo di un’autenticazione, mentre per il veterinario l’accesso è libero. Solo il veterinario ha la possibilità di modificare la base dati a disposizione mentre per gli utenti la base dati è disponibile in sola lettura

Server

La macchina del Server deve supportare l’applicazione e il database, per questo si consigliano i seguenti requisiti minimi hardware:

• Processore basato su architettura x86 con frequenza di lavoro 1GHz • 128 MB RAM

Client

La macchina del Client richiede una connessione ad Internet, l’applicazione invia pagine contenenti fogli di stile e javascript per questo motivo si consiglia una versione recente del browser internet explorer almeno la versione 4.

Page 58: documento sistema informativo ambulatorio veterinario on-line

58

2.1 Architettura software L’architettura software è una applicazione web sviluppata su tre strati:

• Strato presentazione: è la parte con cui interagisce direttamente il Client e si occupa della identificazione utente tramite userId e password e visualizzazione dati, la comunicazione con l’applicazione avviene tramite protocollo HTTP;

• Strato applicazione: gestisce tramite PHP la manipolazione dei dati e le interrogazioni nella base dati attraverso le primitive PHP;

• Strato DBMS: è il software che si occupa della memorizzazione permanente dei dati e dell’accesso ad essi.

Web/HTTP Server

Documenti

statici

CGI, PHP ISAPI, NSAPI

Browser

RPC

Applicazione

Sistemi legacy

DBMS

http

Backend

Odbc, rpc

Client Middle tier

L’interazione tra Client e Server si svolge in questo modo:

• Il Client tramite browser effettua una chiamata al Web Server; • Il Server provvede a eseguire l’applicazione attivando la pagina

PHP relativa alla richiesta e passandole eventuali parametri; • La pagina PHP crea una connessione con il database MySQL ed

esegue le query SQL necessarie per reperire i dati;

PHP Browser

Page 59: documento sistema informativo ambulatorio veterinario on-line

59

• L’applicazione elabora i dati e genera la pagina HTML che viene passata al Web Server, il quale la invierà poi al Client;

• Il browser del Client riceve la pagina HTML e la visualizza sulla macchina dell’utente. (l’uso dei fogli di stile CSS e di javascript consente una presentazione dei dati dall’aspetto grafico gradevole)

Page 60: documento sistema informativo ambulatorio veterinario on-line

60

2.2 Realizzazione Software 2.2.1 Listato HomePage.html <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=windows-1252" > <meta name= "GENERATOR" content= "Microsoft FrontPage 4.0" > <meta name= "ProgId" content= "FrontPage.Editor.Document" > <title> Ambulatorio Veterinario on-line </title> </head> <body> <table border= "0" width= "687" height= "141" bgcolor= "#FFFFFF" cellspacing= "0" cellpadding= "0" > <tr> <td width= "166" height= "48" align= "center" > <p align= "center" ><b><font size= "4" >Ambulatorio Veterinario <br> on-line </font></b></td> <td width= "684" height= "48" >&nbsp; </td> <td width= "859" height= "48" > <p align= "right" ><IMG alt= "" border= 0 src= "images/logo.jpg" align= "right" width= "300" height= "68" ></td> <td width= "103" height= "48" >&nbsp; </td> </tr> <tr> <td width= "166" height= "22" align= "center" >&nbsp; </td> <td width= "684" height= "22" >&nbsp; </td> <td width= "859" height= "22" >&nbsp; </td> <td width= "103" height= "22" >&nbsp; </td> </tr> <tr> <td width= "166" height= "22" bgcolor= "#000080" align= "center" valign= "top" > <p align= "left" ><font size= "3" color= "#FFFFFF" >dott. Ricci Loredana </font><br><font color= "#FFFFFF" ><font size= "3" > via Badia, 21 Teramo <br> </font> 0861413836 </font></p> <p align= "left" ><font color= "#FFFFFF" ><IMG alt= "" border= 0 src= "images/sx1.jpg" width= "168" height= "83" ></font></p> <p align= "left" > <font size= 2> <form action= 'pg_scheda.php' method= post > <table cellpadding= 5 cellspacing= 1 width= "160" > <tr><td width= "61" ><font color= "#FFFFFF" >Username </font> </td><td width= "105" > <input type= text name= UserName size= "10" style= "font-size: 10 pt" ></td></tr> <tr><td width= "61" ><font color= "#FFFFFF" >Password </font> </td><td width= "105" > <input type= password name= Password size= "10" style= "font-size: 10 pt" ></td></tr> </table><p> <input type= submit value= 'Entra' style= "background-color: #000080; font-weight: bold; color: #FFFFFF; border: 2 groove #FFFFFF" > </form> </font> </td> <td width= "684" height= "22" >&nbsp; <p>&nbsp; </td> <td width= "859" height= "22" ><IMG src= "images/primopiano.gif" width= "460" height= "29" > <p><IMG align= left alt= "amici a 4 zampe - copertina" src= "images/avviso.jpg" width= "129" height= "164" ></p> <P align= left ><FONT color= #b57ba5 ><B><FONT color= #ff9900 >Raccolte 500mila firme contro l'utilizzo di animali da laboratorio </FONT></B></FONT></P>

Page 61: documento sistema informativo ambulatorio veterinario on-line

61

<P align= left ><FONT color= #000000 >Bruxelles, test su sostanze chimiche in Europa : Consegnate al Parlamento UE 500.000 firme raccolte da a ssociazioni animaliste europee per chiedere maggio ri finanziamenti ai test alternativi all'uso di anim ali ... </FONT> </P> <p>&nbsp; </td> <td width= "103" height= "22" >&nbsp; </td> </tr> <tr> <td width= "166" height= "21" bgcolor= "#000080" valign= "top" > <IMG alt= "" border= 0 src= "images/sx2.jpg" width= "168" height= "92" ></td> <td width= "684" height= "21" >&nbsp; </td> <td width= "859" height= "21" > <p align= "center" >&nbsp; </td> <td width= "103" height= "21" >&nbsp; </td> </tr> </table> </body> </html>

Page 62: documento sistema informativo ambulatorio veterinario on-line

62

2.2.2 Listato Stilescheda.css BODY { BACKGROUND: white; COLOR: #000000; FONT-FAMILY: Ve rdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px; MARGIN: 0px; scrollbar-face -color: #333FFF; scrollbar-shadow-color: #6699CC; scrollbar-highlight-color: #6699CC; scrollbar-3dlight-color: #3366CC; scrollbar-darkshadow-color: #3366CC; scrollbar-trac k-color: #ABC0E9; scrollbar-arrow-color: #DAE8FC } INPUT { BACKGROUND: #ffffff; BORDER-BOTTOM: #333333 1px so lid; BORDER-LEFT: #333333 1px solid; BORDER-RIGHT: #333333 1px solid; BORDER-TOP: #333333 1px solid; COLOR: #003366; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px } INPUT.pulsanti { BACKGROUND-COLOR: #003366; BORDER-BOTTOM: #999999 1px outset; BORDER-LEFT: #999999 1px outset; BORDER-RIGHT: #999999 1px outset; BORDE R-TOP: #999999 1px outset; COLOR: #ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sa ns-serif; FONT-SIZE: 11px; FONT-WEIGHT: bold } .tab-form-sx { BACKGROUND-COLOR: #f5f9fd; BORDER-RIGHT: #c2cfdf 1 px solid; BORDER-TOP: #c2cfdf 1px solid; FONT-WEIGHT: bold; PADDING-BOTTOM: 3px; PADD ING-LEFT: 3px; PADDING-RIGHT: 3px; PADDING-TOP: 3px; TEXT-ALIGN: right } .tab-form-dx { BACKGROUND-COLOR: #f5f9fd; BORDER-TOP: #c2cfdf 1px solid; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; PADDING-TOP: 3px } TABLE { FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif ; FONT-SIZE: 11px } A { COLOR: black; TEXT-DECORATION: none } A:hover { TEXT-DECORATION: underline } A.linkTitoloNero { COLOR: #444444; FONT-WEIGHT: bolder; TEXT-DECORATI ON: none } A.linkTitoloNero:hover { COLOR: #444444; FONT-WEIGHT: bolder; TEXT-DECORATI ON: underline } A.linkBianco { COLOR: white; TEXT-DECORATION: none } A.linkBianco:hover { COLOR: white; TEXT-DECORATION: underline } A.linkRosso { COLOR: #990000 } A.linkRosso:hover { COLOR: #990000 } .TitoloBianco { COLOR: #ffffff; FONT-WEIGHT: bold } .TitoloNero { COLOR: #000000; FONT-WEIGHT: bolder } .cellaTabscheda {

Page 63: documento sistema informativo ambulatorio veterinario on-line

63

BACKGROUND-COLOR: #666666; BACKGROUND-IMAGE: url(a ngolo_dx_grigio.png); BACKGROUND-POSITION: right top; BACKGROUND-REPEAT: no-repeat; COLOR: #ffffff; FONT-WEIGHT: bold; LINE-HEIGHT: 19px; TEXT-ALIGN: center } .bordoTabelle { BACKGROUND-COLOR: #f3f3f3; BORDER-BOTTOM: #999999 2px solid; BORDER-LEFT: #999999 2px solid; BORDER-RIGHT: #999999 2px solid; BORDER-TOP: #999999 2px solid; PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; PADDING -TOP: 3px } .bordoTabelleRighe { BACKGROUND-COLOR: #f3f3f3; BORDER-BOTTOM: #999999 2px solid; BORDER-LEFT: #999999 2px solid; BORDER-RIGHT: #999999 2px solid; BORDER-TOP: #999999 2px solid } .menuscheda A { BACKGROUND-COLOR: #006699; BORDER-BOTTOM: #0099cc 2px dotted; COLOR: #ffffff; DISPLAY: block; FONT-SIZE: 12px; FONT-WEIGHT: bold; POSITION: relative; TEXT-ALIGN: left; TEXT-DECORATION: none; TEXT-INDENT: 2pt } .menuscheda A:hover { BACKGROUND-COLOR: #6699ff; BORDER-BOTTOM: #0099cc 2px dotted; BORDER-LEFT: #ffffff 2px; BORDER-RIGHT: #ffffff 2px; BORDER-TOP: #ffffff 2px; COLOR: #ffffff; FONT-SIZE: 12px; FONT-WEIGHT: bold; TEXT-DECORATION: none } .menuschedaicone A { BACKGROUND-COLOR: #ffffff; DISPLAY: block; POSITIO N: relative; TEXT-ALIGN: center; TEXT-DECORATION: none } .elencogiallo A { BACKGROUND-COLOR: #ffffcc; COLOR: #333333; DISPLAY : block; FONT-WEIGHT: bolder; POSITION: relative; TEXT-DECORATION: none; TEXT-IND ENT: 4pt; TEXT-TRANSFORM: lowercase } .elencogiallo A:hover { BACKGROUND-COLOR: #fcde69; COLOR: #333333; FONT-WE IGHT: bolder; TEXT-DECORATION: none; TEXT-TRANSFORM: capitalize } .elencogrigio A { BACKGROUND-COLOR: #f3f3f3; COLOR: #333333; DISPLAY : block; POSITION: relative; TEXT-DECORATION: none; TEXT-INDENT: 4pt } .elencogrigio A:hover { BACKGROUND-COLOR: #dfdfdf; COLOR: #333333; TEXT-DE CORATION: none }

Page 64: documento sistema informativo ambulatorio veterinario on-line

64

2.2.3 Listato pg_scheda.php <html> <head> <title>Veterinario On Line</title> <link rel="stylesheet" type="text/css" href="stilescheda.css"> <script type="text/javascript"> var nome,indirizzo,tel; var loginError=""; var animale=new Array(); var foto=new Array(); var visita=new Array(); var diagnosi=new Array(); var terapia=new Array(); var dieta=new Array(); var farmaci=new Array(); var titoloScheda=new Array(); var motivoScheda=new Array(); var motivo=new Array(); <? global $UserName,$Password; $hostname="localhost"; $dbname="dbambulatorio"; $mysqlHandle=mysql_pconnect($hostname,"",""); $query="select id_proprietario,nome,indirizzo,telefono from proprietario where userName='".$UserName."' and password='".$Password."'"; $result = mysql_db_query($dbname,$query); $errMsg = mysql_error(); $row = mysql_num_rows($result ); $rowArray=mysql_fetch_row($result); if( $row == 0 ) { echo "loginError=\"Login Errato\";\n"; } else { echo "nome=\"$rowArray[1]\";\n"; echo "indirizzo=\"$rowArray[2]\";\n"; echo "tel=\"$rowArray[3]\";\n"; $idproprietario=$rowArray[0]; $query="select id_animale, fileFoto, nome, specie, razza, sesso, dataNascita, date_format(data_ora,'%d %M %Y %T'),temperatura,peso,fc,diagnosi,terapia,farmaci,dieta,motivo from animale,visita where effettuaVisita=id_animale and ha=$idproprietario"; $result=mysql_db_query($dbname,$query); $row=mysql_num_rows($result); $col = mysql_num_fields($result); //if($row == 0 ) {echo "<b>non hai animali visitati in questo ambulatorio</b>";return; } for( $i = 0; $i < $row; $i++ ) { $rowArray=mysql_fetch_row($result); echo "animale[$i]=\"$rowArray[2]</td><td>$rowArray[3]</td><td>$rowArray[4]</td>\";\n"; echo "foto[$i]=\"$rowArray[1]\";\n"; echo "diagnosi[$i]=\"$rowArray[11]\";\n"; echo "terapia[$i]=\"$rowArray[12]\";\n"; echo "farmaci[$i]=\"$rowArray[13]\";\n"; echo "dieta[$i]=\"$rowArray[14]\";\n"; echo "titoloScheda[$i]=\"$rowArray[2] : $rowArray[3] di razza $rowArray[4] $rowArray[5] di anni $rowArray[6]\";\n"; echo "motivoScheda[$i]=\"$rowArray[15] effettuata il : $rowArray[7]\";\n";

Page 65: documento sistema informativo ambulatorio veterinario on-line

65

echo "motivo[$i]=\"$rowArray[15]</td><td>$rowArray[7]\";\n"; } };//end else ?> function logError() { var presLogError="<h1 class='wrong'>"+loginError+"</h1><br><a href='' onClick='history.back();return false'>Torna all'home</a>\n"; document.write(presLogError); }; function presIniziale() { var pro="<TABLE border=0 cellPadding=0 cellSpacing=0 width='100%'><TR><TD bgColor=#006699 width='100%'><TABLE bgColor=#006699 border=0 cellPadding=0 cellSpacing=1 height=100% width=100%>"; pro+="<TBODY><TR><TD width=5%><IMG height=50 width=60 src='images/perro.gif'></TD>"; pro+="<TD class=menuscheda width='25%'><A class=menuscheda href='' onClick='return false;'>"+nome+"</A></TD>"; pro+="<TD class=menuscheda width='10%' >&nbsp;</TD><TD class=menuscheda width='25%'><A class=menuscheda href='' onClick='return false;'>"+indirizzo+"</A></TD>"; pro+="<TD class=menuscheda width='10%' >&nbsp;</TD><TD class=menuscheda width='15%'><A class=menuscheda href='' onClick='return false;'>"+tel+"</A></TD></TR></TBODY></TABLE></TD></TR></TABLE>"; var tbl="<br><br><TABLE align=center border=0 cellPadding=0 cellSpacing=0 width='545'>"; tbl+="<TR><TD class=cellaTabscheda width='700'><DIV align=center>Questa scheda riassume le cure effettuate dai tuoi amici presso l'ambulatorio.</DIV></TD></TR>"; tbl+="<TR><TD class=bordoTabelleRighe height='22' width='541'><TABLE border=1 cellPadding=1 cellSpacing=1 width='100%'><TBODY>"; tbl+="<TR><td width='10%'><b>Foto</b></td><td width='16%'><b>Nome</b></td><td width='14%'><b>Specie</b></td><td width='17%'><b>Razza</b></td><td width='20%'><b>Evento</b></td><td width='22%'><b>Data Evento</b></td></TR><TR></TR>"; var txt=""; for(i=0;i<=animale.length-1;i++) { txt+="<tr><TD height='46%'><IMG alt='la mia foto' border=0 src='http://localhost/VeterinarioOnLine/images/"+foto[i]+"' width='90' height='70'>&nbsp;&nbsp;</TD>"; txt+="<TD height='46%'>"; txt+=animale[i]; txt+="<td class=elencogiallo><A href='JavaScript:scheda(titoloScheda["+i+"],foto["+i+"],motivoScheda["+i+"],diagnosi["+i+"],terapia["+i+"],farmaci["+i+"],dieta["+i+"])'>"+motivo[i]+"</A></TD></tr>"; } txt+="</TBODY></TABLE></TD></TR></TABLE>"; txt+="<p align='center'><br><br><a href='' onClick='history.back();return false'><b>Torna all'home page</b></a>\n"; document.write(pro+tbl); document.write(txt); };

Page 66: documento sistema informativo ambulatorio veterinario on-line

66

function scheda(titolo,foto,motivo,diagn,terap,farm,diet) { var s0="<head><title>Scheda animale</title><link rel='stylesheet' type='text/css' href='stilescheda.css'></head>"; var s1="<TABLE align=center border=0 cellPadding=0 cellSpacing=0 height=0 width='100%'><TR><TD class=cellaTabscheda>"; s1+="<DIV align=center>"+titolo+"</DIV></TD></TR>"; s1+="<TR><TD class=bordoTabelle vAlign=top><DIV align=right><A class=linkTitoloNero href='print.php' target=_blank><IMG border=0 height=22 src='images/print.gif'></A></DIV><BR>"; s1+="<DIV align=center><IMG border=0 src='http://localhost/VeterinarioOnLine/images/"+foto+"' width='355' height='259'></DIV><BR><BR>"; s1+="<DIV align=center><B>"+motivo+"</B></DIV><BR><BR><BR>"; var s2="<DIV align=center><B>Diagnosi</B></DIV><BR>"+diagn+"<BR><BR>"; s2+="<DIV align=center><B>Terapia</B></DIV><BR>"+terap+"<BR><BR>"; s2+="<DIV align=center><B>Dieta</B></DIV><BR>"+diet+"<BR><BR>"; s2+="<DIV align=center><B>Farmaci</B></DIV><BR>"+farm+"<BR><BR>"; var pulsante="<DIV align=center><FORM><INPUT TYPE='BUTTON' VALUE='Close'"+"onClick='self.close()'>"+"</FORM></TD></TR></TABLE>"; popup = window.open("","","height=400,width=500,left=50,top=0,scrollbars=yes") popup.document.write(s0+s1+s2+pulsante) popup.document.close() } </script> </head> <body> <script> if (loginError!="") logError(); else presIniziale(); </script> </body> </html>

Author: Ing. Nelson Firmani ([email protected]) Last update: 10/09/2004