documento sistema informativo ambulatorio veterinario on-line

  • 181 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
181
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. REALIZZAZIONE DEL PROGETTOAMBULATORIO VETERINARIO ON-LINE Ing. Nelson Firmani Dipartimento di Ingegneria Elettrica Università di L’Aquila, AQ 67040, Italy 1
  • 2. Ambulatorio veterinario on-lineStudio diFattibilita’Requisiti Utente e specifiche Funzionali del SistemaProgettazione Della Base di datiProgettazione Del sistema 2
  • 3. Ambulatorioveterinario on-line Studio di Fattibilita’ 3
  • 4. Table of contents1 Il contesto dello studio ................................................................................................................. 22 Progetto di massima ...................................................................................................................... 42.1 Obiettivi .............................................................................................................................................. 42.2 Funzioni del sistema .................................................................................................................. 42.3 Natura e caratteristica dei dati da gestire.................................................................. 52.4 Aspetti tecnologici ....................................................................................................................... 62.5 Analisi costi-benefici e analisi rischio .......................................................................... 7Glossario dei termini ....................................................................................................................... 10 4
  • 5. STUDIO DI FATTIBILITA’finalizzato alla realizzazione del progetto ambulatorio veterinario on-line1 Il contesto dello studioIn Italia negli ultimi anni è cresciuta la presenza di strutture sanitarieveterinarie private. Dei 30000 veterinari iscritti nell’apposito albo tenutodagli ordini provinciali dei medici veterinari, più del 60% esercita lalibera professione sia in forma singola che associata.Inoltre nel settore si assiste ad una sempre maggiore specializzazionebasata sul tipo di prestazione:Qualche anno fa, il veterinario si occupava prevalentemente di animali dareddito ospitati da aziende zootecniche. Oggi si parla sempre più diveterinario di città per indicare colui che si dedica quasi esclusivamentealla cura degli animali di compagnia, fra cui i più comuni sono il cane edil gatto.La differente specializzazione si riflette sulle condizioni e modalità diesercizio delle attività e sulla tipologia ed organizzazione della strutturaadibita all’esercizio dell’attività.In questo ambito si individuano i seguenti tipi di strutture sanitarieveterinarie 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 5
  • 6. presenza di un medico veterinario 24 ore su 24.Le strutture più ricorrenti sono senza dubbio gli ambulatori veterinari inquanto attraverso gli stessi viene fornito un servizio di più ampia richiesta.La realtà della citta di Teramo riguardo alla presenza di strutturesanitarie veterinarie private è la seguente: • 4 ambulatori privati • 1 clinica veterinariaDa una indagine sui 4 ambulatori privati si è scoperto che non esiste unaraccolta dei dati ambulatoriali informatizzati né tantomeno servizi on-lineo siti web informativi.Tutti i dati connessi alla diagnosi e cura degli animali e alla gestione deiclienti proprietari degli animali è quasi assente o al più in forma cartacea.L’idea di un sistema informatico finalizzato alla raccolta dei datiambulatoriali è nata dai colloqui tenuti con un medico veterinarioproprietario di un ambulatorio sito nella città di Teramo.L’esigenza principale manifestata dal medico è stata quella di avere adisposizione in maniera semplice tutte le informazioni storiche relative adun animale in cura presso l’ambulatorio. E quella di un sito web per lapromozione del suo ambulatorio che non fosse solo una vetrina ma offrisseun servizio utile ai propri clienti.Se trascuriamo le problematiche relative alla sicurezza dei dati (esigenzanon necessaria)dal punto di vista tecnologico il progetto è di facile attuazione con costicontenuti.L’unico fattore di criticità è rappresentato dall’impatto che l’introduzionedelle nuove procedure informatizzate può produrre sulla preesistenteorganizzazione lavorativa. Se l’impatto è troppo traumatico, è inevitabileche nascano fenomeni di reazione che si oppongono al correttofunzionamento del nuovo sistema dovuto anche alla non sempre adeguataconfidenza con le tecnologie informatiche da parte dei fruitori del servizio. 6
  • 7. 2 Progetto di massimaIl progetto di massima consiste nella descrizione degli elementi portanti e delle linee direalizzazione del progetto ambulatorio veterinario on-line.L’elaborazione del progetto di massima risponde principalmente all’esigenza di verificarela fattibilità del progetto e di stimarne costi, benefici e tempi, quindi la descrizione del progetto intermini di dettaglio è limitato alle componenti principali del sistema informativo e all’esame deicasi 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 sistemaSulla base dei numerosi colloqui avuti con il cliente si possono elencarealcuni dei requisiti utente che devono essere considerati nello studio difattibilità.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 7
  • 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 sistema2.3 Natura e caratteristica dei dati da gestirePer poter memorizzare dati è pratica corrente progettare e realizzare unsistema i nformativoautomatizzato che si basa sulla tecnologia delle basi di dati.In un ambulatorio veterinario è possibile individuare due settoriapplicativi: 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. 8
  • 9. L’insieme dei dati riguardanti il primo settore applicativo è costituitacertamente 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. 9
  • 10. 2.4 Aspetti tecnologiciIn questa sezione si presenta le diverse soluzioni tecnologiche offerte dalmercato in termini di ambiente di sviluppo di linguaggio diprogrammazione 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 dellapplicazione. Asp è lacronimo 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, allaccesso 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 10
  • 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 Sourcesono sensibili.Per quanto riguarda la scelta del linguaggio di programmazione di paginedinamiche che interagiscono con le informazioni contenute in un databaserisiedente 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. 11
  • 12. Un breve confronto fra i linguaggi a disposizione porta ad individuarePhp da abbinare a HTML CSS e Javascript come linguaggio da utilizzareper lo sviluppo dell’applicazione.La scelta è motivata in base alle seguenti considerazioni:PHP è open source, adatto alle dimensioni del progetto e rispetto a JSPconsente un costo di sviluppo molto più basso.2.5 Analisi costi-benefici e analisi rischioIn questa parte del documento si evidenzieranno i costi di sviluppo e diesercizio del progetto.Le principali voci che costituiscono i costi di sviluppo riguarda inparticolar modo l’ambiente di sviluppo software (già analizzato nellaparte del documento relativo agli aspetti tecnologici) e il costo dovutoall’impegno di risorse umane.Per quanto riguarda i costi operativi o di esercizio occorre individuare lasoluzione più idonea per la gestione del sito. Escluse a priori le soluzionicompletamente interna (homing) per i costi elevati e completamenteesterna (outsourcing), in quanto l’inserimento dati deve essere eseguitodal medico veterinario, restano da confrontare due possibili soluzioni: • HOUSING La soluzione che lascia la maggiore libertà di gestione allutente è quella che prevede lacquisto di un server e di software specifico. Lutente, 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: 12
  • 13. lutente non si deve fare carico del costo dellhardware 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 2Tabella Server Dedicati Offerte Intel Celeron Traffico Costo di Canone mensile CPU RAM HD mensile attivazione (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 Traffico Costo di CPU RAM HD Canone mensile mensile attivazione Intel Pentium 4 512MB 60GB 700GB Gratuito 238,00 2.0 Intel Pentium 4 512MB 80GB 700GB Gratuito 258,00 2.0 Intel Dual Xeon Costo di CPU RAM HD Transfer Canone mensile attivazione Intel Dual Xeon 512MB 73GB SCSI 700GB Gratuito 398,00 2.0 13
  • 14. Intel Dual Xeon (2) 73GB 1 GB 1200GB Gratuito 498,00 2.0 SCSI Intel Dual Xeon 1 GB (2) 120GB 1200GB Gratuito 498,00 2.0Tabella 1 (dati eurosito.it) 14
  • 15. Tabella offerta hostingPiano STANDARD Hosting Linux con 60,00 € lannoDominioSistema operativo Linux RedHat1 Dominio .com, .net, .org, .it100 MB di spazio disco10 e-mailalias e-mail illimitati2 GB di Trasferimento MensilePannello di controllo CpanelSupporto PHP4, CGI/Perl, MySQLPiano PROFESSIONAL Hosting Linux 90,00 € lannocon DominioSistema operativo Linux RedHat1 Dominio .com, .net, .org, .it200 MB di spazio disco20 e-mailalias e-mail illimitati3 GB di Trasferimento MensilePannello di controllo CpanelSupporto PHP4, CGI/Perl, MySQLPiano ADVANCED Hosting Linux con 135,00 € lannoDominioSistema operativo Linux RedHat1 Dominio .com, .net, .org, .it500 MB* di spazio discoillimitate e-mailalias e-mail illimitati6 GB** di Trasferimento MensilePannello di controllo Cpanel 15
  • 16. Supporto PHP4, CGI/Perl, MySQLTabella 2 (dati eurosito.it)L hosting costituisce un buon compromesso tra flessibilità del sistema edifficoltà di gestione, ad un costo decisamente più contenuto di quello dellhousing.In termini di benefici sebbene difficili da monetizzare il progettosicuramente potrà produrre significativi miglioramenti del servizio resoalla clientela, una migliore gestione dell’attività ambulatoriale, unariduzione dei tempi di risposta e una riduzione dei supporti cartacei.Quanto ai rischi inerenti il progetto è rappresentato dall’impatto chel’introduzione delle nuove procedure informatizzate può produrre sullapreesistente organizzazione lavorativa. Se l’impatto è troppo traumatico, èinevitabile che nascano fenomeni di reazione che si oppongono al correttofunzionamento del nuovo sistema. In ultima analisi è da tenere presenteche il sistema gestisce informazioni non critiche, per il quale un eventualemalfunzionamento comporta danni limitati. 16
  • 17. Glossario dei terminiApplicativo Insieme di procedure (software) in grado di processare dati secondo modalità definiteDB, Data Base Archivio elettronico in grado di gestire e archiviare dati organizzati, sui quali effettuare eventuali ricerche successiveDBMS Data Base Management System – E’ il sistema che gestisce il databaseHosting Servizio che prevede di ospitare applicativi e/o siti presso un computer di proprietà del fornitore di servizi in modalità condivisa con altri utentiHousing Servizio che prevede di ospitare applicativi e/o siti presso un computer in modalità non condivisa con altri utenti presso il fornitore di serviziHW HardWare: tutto ciò che costituisce fisicamente una unità di elaborazione/computerInterfaccia E’ la parte di un pacchetto SW orientata a facilitare il dialogo tra la macchinautente 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 mondialeISP Internet Service Provider – Fornitore di servizi InternetJDBC Java data base connetivity (soluzione tecnologica per far comunicare applivcativi java con qualunque databaseOpen Source Si dice di programmi di cui sia liberamente disponibile il sorgenteODBC Open data base connetivity (soluzione tecnologica per far comunicare applicativi con qualunque database)Protocollo Modalità di interscambio di datiServer Sistema “centrale” cardine di una rete informativaSW SoftWare: insieme di procedure che rendono possibili il trattamento di informazioni in modalità definita in ambiente di elaborazione dati automaticoWeb Browser E’ il software che consente di muoversi in Internet e di accedere alle risorse ivi disponibili 17
  • 18. 18
  • 19. Ambulatorio veterinario on-line Requisiti Utente eSpecifiche Funzionali del Sistema 19
  • 20. Table of contents1 Introduzione........................................................................................................................................ 31.1 Obiettivo del documento ......................................................................... 31.2 Struttura del documento .......................................................................................................... 32 Requisiti utente ................................................................................................................................. 43 Requisiti funzionali ....................................................................................................................... 53.1 Gestione informazione on-line ............................................................................................ 53.1.1 Visualizzazione ................................................................................................................................ 53.2 Gestione cliente ............................................................................................................................. 63.2.1 Inserimento ........................................................................................................... 63.2.2 Cancellazione ....................................................................................................... 63.2.3 Ricerca ................................................................................................................................................ 63.3 Gestione attività ............................................................................................................................ 73.3.1 Registrazione.................................................................................................................................... 73.3.2 Visualizzazione ................................................................................................................................ 74 Diagramma di contesto ............................................................................................................... 84.1 Descrizione del diagramma di contesto ....................................................................... 94.1.1 Individuazione dei terminatori ............................................................................. 94.1.2 Flussi di dati in ingresso al sistema ..................................................................... 94.1.3 Flussi di dati in uscita dal sistema .......................................................................................... 95 Specifica delle funzioni............................................................................................................. 115.1 Diagramma di flusso di livello 0 – DFD 0 ............................................................... 115.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0 ................................................ 135.2 Diagramma di flusso di livello 1 – DFD 2 ............................................................... 145.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2 ................................................ 155.3Diagramma di flusso di livello 1 – DFD 3 ................................................................ 165.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3 ................................................ 175.4 Dizionario dei dati .................................................................................................................... 196 Glossario termini ........................................................................................................................... 20 20
  • 21. 1 IntroduzioneLa raccolta dei requisiti nasce dai contatti preliminari che si sono tenuti con il Cliente per larealizzazione del progetto ambulatorio on line.1.1 Obiettivo del documentoLo scopo che si prefigge questo documento è quello di raccogliere e formalizzare in modo chiaro lenecessità dellutente e stabilire un elenco di obblighi che il sistema deve soddisfare. Questodocumento 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 documentoIl 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”. 21
  • 22. 2 Requisiti utenteUn 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 accederealle 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 normalesito web la cui pagina introduttiva deve contenere una presentazione del servizio e una richiesta diidentificazione 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 elencocronologico delle prestazioni effettuate presso l’ambulatorio sui propri animali.I dati relativi agli animali assistiti sono la principale fonte di informazione del sistema informativoda 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 prestazioneInoltre nel caso in cui la prestazione registrata è una visita il cliente può visualizzare informazionipiù dettagliate quali diagnosi, terapia, dieta e farmaci.Il medico veterinario (amministratore dell’ambulatorio) gestisce i dati tramite una base di dati, unDBMS e un’interfaccia sviluppata in linguaggio Html.Dopo il login accede alla pagina principale costituita dal menù delle operazioni che può effettuare edall’elenco degli animali attualmente ricoverati.Operando sui link presenti nella pagina il medico deve poter accedere, per ogni animale alla suascheda (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 22
  • 23. 3 Requisiti funzionali3.1 Gestione informazione on-lineil sistema deve consentire ai clienti di consultare le informazioni relative a visite o ricoveri deipropri 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 23
  • 24. 3.2 Gestione clienteIl 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’animale3.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 24
  • 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 25
  • 26. 4 Diagramma di contestoL’interazione tra il sistema (cioè sostanzialmente l’insieme delle pagine web costituenti il softwarequi rappresentato) ed il mondo esterno sono rappresentabili mediante il seguente diagramma dicontesto: richiesta identificazione dati cliente aggiungi/canc. cliente dati identificazione Gestione riscontro sch eda amb ulat orio lista prestazioni effettuate Cliente io Ambulatorio richiesta ricerca cliente Veterinario Amministratore ric hies ta de tta gl inform. cliente * inform. ricerca esito cliente de tta glio ti ric o v d a a n ima le o v e ra o v e ra t Riscontro prestazione ris c o n li ric o reg is tra e ra t o a le ric t ro a t t iv e n ima ta s ch Dati prestazione a tt iv it à a a n im a lis t a it à s ric h ie s ch e d Veterinario* Amministratore * terminatore duplicato 26
  • 27. 4.1 Descrizione del diagramma di contesto4.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. 27
  • 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 28
  • 29. 5 Specifica delle funzioni5.1 Diagramma di flusso di livello 0 – DFD 0 te t o rio n Lista prestazioni o lie g li .c tt a effettuate la nc mb u de a i/c ta o t ro g li da a ng ie s Dati cliente on tta g iu h c ric s ch e de ris ag e en t richiestaliinformazione rich ie st a ac id en tificazio r ic e rc cliente ne 1. 2. informazione ca d a ti id e ce r n tifica zi Produce proprietario o ri one rilascia e s it cliente informazione gestione informazione on-line clienti on-line scheda ambulatorio scheda prestazioni animale Dati prestazione ità a a t t iv t r re g is riscontro prestazione it à a t t iv o n t ro ris c 4. 3. d a an imale ta s ch e to ric h ies ra crea visita gestione rico v e scheda attività ambulatorio prestazioni v erat o imale rico scheda animale sc h ed a an esamiLab lista animali ricoverati ti v e ra ic o a li r a a n im lis t 5. ricovero crea lista animali ricoverati 29
  • 30. 5.1.1 Descrizione diagramma di flusso di livello 0 – DFD 0Processo 1: produce informazione on-lineNome Produce informazione on-lineterminatore ClienteScopo 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 effettuataProcesso 2: gestione clienti (vedi DFD 2)Nome Gestione clientiterminatore VeterinarioScopo inserire dati nuovi clienti, cancellare i dati clienti, visualizzare informazioni clienti.Processo 3: gestione attività (vedi DFD 3)Nome Gestione attivitàterminatore VeterinarioScopo Registra prestazioni, fornisce lista animali ricoverati, fornisce scheda animaleProcesso 4: crea scheda prestazioniNome Crea scheda prestazioniterminatore Utilizzato dal processo 1Scopo fornisce scheda prestazioni effettuate 30
  • 31. 5.2 Diagramma di flusso di livello 1 – DFD 2 aggiungi inserimento nte clie Dati ca nc. i/ cliente ung aggi 2.1 inserire animale dati cliente cancella a c e ll can proprietario 2.2 cancella cancella dati cliente o ntr co ris e t lie n Richiesta inform. ac e rc cliente 2.3 ric a ricerca c erc Inform.ricliente cliente to es i proprietario 31
  • 32. 5.2.1 Descrizione diagramma di flusso di livello 1 – DFD 2Processo 2.1: inserire dati clienteNome Inserire dati clienteterminatore VeterinarioScopo 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 clienteScenario principale di successo: 1. Il veterinario inserisce i dati del cliente e dei relativi animali posseduti 2. Il sistema inserisce i dati nella base datiProcesso 2.2: cancella dati clienteNome Cancella dati clienteterminatore VeterinarioScopo 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 datiProcesso 2.3: Ricerca clienteNome Ricerca clienteTerminatore VeterinarioScopo Cercare informazioni su un clienteScenario principale di successo: 1. Il veterinario inserisce il codice fiscale del cliente. 2. Il sistema visualizza le informazioni del cliente. 32
  • 33. 5.3Diagramma di flusso di livello 1 – DFD 3 3.1 aggiorna di mi dati ricovero ss io n e ità box disponibile attiv Dati prestazione tra regis ro ont ricovero risc risc riscontro 3.2 ont prestazione ro verifica ric o v atti e ro disponibilità vità box nibile dispo non_ box_ ontro ita risc vis 3.3 riscontro inserisci dati visita rio o ra t visita bo la ris me co ntr es a o 3.4 inserisci dati esamiLab esamiLab an imale h ed a ta s c to ric h ies ico v e ra r o 3.5 v e ra t ric o a le visita crea scheda a n im ed a animale s ch ricoverato lista animali ricoverati ricovero 3.6 crea lista animali ricoverati 33
  • 34. 5.3.1 Descrizione diagramma di flusso di livello 1 – DFD 3Processo 3.1: aggiorna dati ricoveroNome Aggiorna dati ricoveroterminatore VeterinarioScopo Registrazione della prestazione di ricovero se il numero Box assegnato è disponibile. Registrazione dell’attività di dimissioneScenario 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 visitaNome Inserisci dati visitaterminatore VeterinarioScopo Inserire l’informazione associata alla prestazione di visitaScenario principale di successo: 1. il veterinario inserisce i dati della visita 2. il sistema inserisce i dati nella base datiProcesso 3.4: inserisci dati esami laboratorioNome Inserisci esamiLabTerminatore VeterinarioScopo Inserire l’informazione associata alla prestazione di un esame di laboratorio 34
  • 35. Scenario principale di successo: 1. Il veterinario inserisce i dati dell’esame di laboratorio 2. Il sistema inserisce i dati nella base dati 35
  • 36. Processo 3.5: crea scheda animaleNome Crea scheda animaleTerminatore VeterinarioScopo Fornire i dati ambulatoriali riguardanti un animaleScenario principale di successo (caso animale non ricoverato): 1. Il veterinario inserisce il codice dell’animale 2. Il sistema visualizza lo storico dell’animaleScenario 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’animaleProcesso 3.6: Crea lista animali ricoveratiNome Crea lista animali ricoveratiTerminatore VeterinarioScopo Fornire la lista degli animali attualmente ricoveratiScenario principale di successo : 1. Il veterinario accede al sistema. 2. Il sistema visualizza la lista degli animali attualmente ricoverati 36
  • 37. 5.4 Dizionario dei datidati identificazione = username + passwordlista prestazione effettuata = {(foto) + nome + specie + razza + data prestazione + tipo prestazione} * dati riferiti ad animale*data prestazione = giorno + mese + anno + ora +minuti + seconditipo prestazione = [visita | ricovero | dimissione | esame laboratorio]dettaglio = animale + data prestazione + diagnosi + terapia + farmaci + dietaanimale = (foto) + nome + specie + razza + sesso + data nascitadata nascita = giorno + mese + annodati cliente = proprietario + animaleproprietario = nome + indirizzo + telefono + codice fiscale + username + passworddati prestazione = [visita | ricovero | dimissione | esami lab]visita = (temperatura) + (peso) + (freq. Cardiaca) + diagnosi + terapia + (farmaci) + (dieta) + data prestazionericovero = numeroBox + data iniziodata inizio giorno + mese + anno + ora +minuti + secondidimissione = causa + data finedata fine = giorno + mese + anno + ora +minuti + secondiesami Lab = tipo esame + (file analisi) + risultato + data prestazionelista animali ricoverati = {(foto) + nome + specie + razza +data ricovero + numeroBox}scheda animale = proprietario + animale + lista prestazione effettuata 37
  • 38. 6 Glossario terminiAmbulatorio veterinario E’ la struttura avente organizzazione autonoma dall’ambiente privato, presso la quale uno o più medici veterinari erogano prestazioni sanitarieAnimale d’affezione Animali da compagnia, fra cui i più comuni sono cane ed il gattoBase di dati Archivio elettronico in grado di gestire e archiviare dati organizzati, sui quali effettuare eventuali ricerche successiveBottoni di navigazione L’insieme degli elementi grafici presenti nelle pagine web per poter richiamare altre pagineCliente 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 animaliConvalida ConfermaDBMS Data Base Management System – E’ il sistema che gestisce il databaseDegenza Nel contesto del documento è degente l’animale ricoverato nell’ambulatorio veterinarioDiagnosi Definizione della natura di una malattia e sua classificazione in base ai sintomiDiagramma DFD Formalismo grafico di facile lettura per descrivere le funzioni del sistemaDiagramma di contesto E’ un diagramma DFD che evidenzia l’interazione tra il sistema ed il mondo esternoDizionario dati E’ un elenco organizzato di tutti gli elementi di dati che riguardano il sistemaFile esame E’ il risultato (in forma elettronica) fornito dal laboratorio di analisiForm 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 sistemaHTML Linguaggio per scrivere pagine webInformazione on-line Informazione ricevuta quando si è connessi ad internetLink Testo o immagine presente sulle pagine Internet che, con un click, trasporta in unaltra paginaLogin Viene considerato login quando sia necessario digitare un username e password per accedere a dei serviziNumeroBox Numero che identifica la cuccia di ricovero degli animaliPrestazione Ciò che il veterinario adempie: può essere una visita un esame di laboratorio un ricovero o una dimissioneRazza Nel contesto del documento l’insieme degli animali della stessa specieRiscontro VerificaScheda animale Scheda che riassume i dati dell’animaleStorico 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 malattiaTerminatore 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 38
  • 39. Ambulatorioveterinario on-line Progettazione Della Base di dati 39
  • 40. Table of contents1 Introduzione........................................................................................................................................ 31.1Obiettivo del documento ........................................................................................................... 31.2 Riferimenti ........................................................................................................................................ 31.3 Struttura del documento .......................................................................................................... 32 Progettazione dello schema concettuale ........................................................................ 42.1 Schema ER (Entity - Relationship) .................................................................................. 42.1.1 Scelte fatte nella fase di progettazione concettuale ......................................................... 52.2 Glossario delle entità e delle relazioni ......................................................................... 62.3 Volume dei dati.............................................................................................................................. 73 Progettazione logica ...................................................................................................................... 83.1 Schema ER ristrutturato.......................................................................................................... 93.2 Ristrutturazione dello schema E-R ................................................................................ 103.2.1 Specifica di vincoli esterni........................................................................................................ 103.3 Schema Relazionale ................................................................................................................. 113.3.1 Ristrutturazione dello schema logico ................................................................................... 113.4 Schema Logico ............................................................................................................................. 124 Progettazione fisica ..................................................................................................................... 134.1 Creazione del data base ........................................................................................................ 13 40
  • 41. 1 IntroduzioneL’architettura della base di dati verrà descritta a partire dallo schema concettuale fino ad arrivare alcodice SQL sviluppato per l’implementazione del progetto.1.1 Obiettivo del documentoLo scopo che si prefigge questo documento è quello di spiegare nel dettaglio tutte le scelteeffettuate nella progettazione della base di dati, sulla base delle richieste dell’utente formalizzate neirequisiti utente e funzionali.1.2 Riferimenti[1] “Requisiti Utente e Specifiche funzionali”[2] “Progettazione del sistema”1.3 Struttura del documentoIl 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. 41
  • 42. 2 Progettazione dello schema concettuale2.1 Schema ER (Entity - Relationship) cf nome indirizzo telefono userName Proprietario password (1,N) Codice Ha Anagrafe codice canina Data_oraInizio (1,1) specie nome razza Animale Ricovero sesso Va_in (0,N) (1,1) dataNascita fileFoto (0,N) (0,N) numeroBox Ricovero Ricovero in corso concluso EffettuaEsame Data_oraFine causa data_ora data_ora (1,1) temperatura EsamiLab peso Visita fc EffettuaVisita diagnosi (1,1) cura farmaci risultato tipoEsame fileAnalisi farmaci dieta terapia motivo dieta 42
  • 43. 2.1.1 Scelte fatte nella fase di progettazione concettualeIntroduzione 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. 43
  • 44. 2.2 Glossario delle entità e delle relazioniNome Entità Descrizione Attributi Identificatore Cf,nome,indirizzo, PrimaryKey{Cf}Proprietario I dati di un cliente proprietario di animali username, password, Unique{username, telefono Password} Specie, nome, razza,Animale I dati dell’animale posseduto dal proprietario sesso, dataNascita, PrimaryKey{Codice} file foto, codice Identificatore Data_ora, temperatura, I dati relativi alle visite effettuate dagli esterno conVisita peso, fc, diagnosi, animali Animale{codice} e terapia, farmaci, dieta data_ora Identificatore I dati relativi agli esami di laboratorio Data_ora, tipoEsame, esterno conEsamiLab Effettuati dagli animali file esame, risultato Animale{codice} e data_ora Identificatore esternoRicovero Può essere in corso o concluso Data inizio Con Animale{codice} e data_oraRicovero in Generalizzazione di Ricovero numeroBoxcorsoRicovero Generalizzazione di ricovero Data_fine, causaConclusoNome Relazione Descrizione Entità Coinvolte cardinalità motivazione Proprietario (1,N) Un proprietario deve avere almeno un Indica animali animaleHa posseduti dal proprietario Animale (1,1) Un animale è posseduto da un solo proprietario Animale (0,N) un animale può non essere mai Indica ricoverato o subire più ricoveriVa_in l’accettazione a un ricovero Ricovero (1,1) i dati di un ricovero sono relativi ad uno ed un solo animale Animale (0,N) un animale può non effettuare visite o Indica effettuare più visiteEffettuaVisita l’effettuazione di una visita Visita (1,1) i dati di una visita sono relativi ad uno ed un solo animale Animale (0,N) un animale può non effettuare esami o Indica effettuare più esami l’effettuazione diEffettuaEsame un esame di EsamiLab (1,1) i dati di un esame sono relativi ad uno laboratorio ed un solo animale 44
  • 45. 2.3 Volume dei dati Dei 200 clientiTavola dei volumi (riferiti in un anno) dell’ambulatorio mediamente Concetto <Nome> Tipo E/R ognuno possiede 2 animali. Volume <Dim> proprietario E 200 ha R 400 animale E 400 Mediamente un animale subisce un ricovero ogni 3-4 ricovero E 100 anni. 400*1/4=100 va_in R 100 visita E 1200 effettua visita R 1200 Mediamente un animale effettua 3 visite l’anno. EsameLab E 400 400*3=1200 Effettua esame R 400 Mediamente un animale effettua 1 esame di laboratorio l’anno. 400*1=400 45
  • 46. 3 Progettazione logicaL’ obiettivo della progettazione logica è tradurre lo schema concettuale in uno schema logico cherappresenti gli stessi dati: • in ingresso: schema concettuale (diagramma ER); informazioni sul carico applicativo; • in uscita: schema logico; vincoli aggiuntivi. 46
  • 47. 3.1 Schema ER ristrutturato id_proprietario cf nome indirizzo telefono userName Proprietario password (1,N) Ha Data_oraInizio Data_oraFine id_animale numeroBox id_ricovero (1,1) specie nome razza Animale Ricovero sesso Va_in (1,1) (0,N) dataNascita fileFoto (0,N) (0,N) causa tipo data_ora EffettuaEsame temperatura (1,1) peso EffettuaVisita Visita fc diagnosi id_esame terapia (1,1) id_visita farmaci dieta motivo EsamiLab data_ora risultato tipoEsame fileAnalisi 47
  • 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 esterniNella ristrutturazione è necessario formulare dei vincoli esterni. In particolare dovremo specificarevincoli dovuti alla eliminazione delle generalizzazioni.Per tener conto delle proprietà della generalizzazione si aggiungono opportuni vincoli esterni, dettivincoli di generalizzazione, quindi le proprietà: • istanze(Ricovero in corso) ∩ istanze(Ricovero concluso) = 0 • istanze(Ricovero in corso) ∪ istanze(Ricovero concluso) = istanze(Ricovero) 48
  • 49. 3.3 Schema Relazionaletraduzione dallo schema E-R ristrutturato ad uno schema logico equivalente del modellorelazionale.In base alle regole relative alle associazioni uno a molti, è stato prodotto il seguente schemarelazionale: • 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 logicoL’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. 49
  • 50. 3.4 Schema Logico Ricovero Id_ricovero Va_in ∞ DataInizioProprietario DataFine CausaId_proprietario NumeroBoxCf 1 TipoNome AnimaleIndirizzo 1Telefono Id_animaleUserName HaPassword ∞ Specie Visita Nome Razza Id_visita Sesso EffettuaVisita DataNascita ∞ Data_ora FileFoto Temperatura Peso Fc Diagnosi Terapia Farmaci Dieta Motivo EsamiLab Id_esame EffettuaEsame ∞ TipoEsame Data_ora FileAnalisi Risultato 50
  • 51. 4 Progettazione fisicaL’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 baseDi 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, 51
  • 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; 52
  • 53. Scelte fatte:Gli attributi dataInizio, dataFine, data_ora sono di tipo TIMESTAMP e non del consuetoDATETIME.Il tipo TIMESTAMP ha l’importante caratteristica di essere automaticamente inizializzato alladata e l’ora corrente al momento dell’inserimento se non altrimenti specificato o se si inserisce un valorenull.TIMESTAMP ha come formato di visualizzazione yyyymmddhhmmss (il dbms mysql prevede numerosefunzioni per la conversione dei formati di visualizzazione questo risulterà molto utile nella fase diimplementazione). 53
  • 54. Ambulatorioveterinario on-line Progettazione Del sistema 54
  • 55. Table of contents1 Introduzione........................................................................................................................................ 31.1 Obiettivo del documento ......................................................................................................... 31.2 Riferimenti ........................................................................................................................................ 31.3 Struttura del documento .......................................................................................................... 32 Progettazione del sistema .......................................................................................................... 42.1 Architettura Hardware............................................................................................................. 42.1 Architettura software................................................................................................................. 52.2 Realizzazione Software ............................................................................................................ 62.2.1 Listato HomePage.html ............................................................................................................... 62.2.2 Listato Stilescheda.css.................................................................................................................. 82.2.3 Listato pg_scheda.php................................................................................................................ 10 55
  • 56. 1 IntroduzioneIn questo documento verra descritto l’architettura hardware e softwarenecessarie per la realizzazione del servizio.1.1 Obiettivo del documentoLo scopo che si prefigge questo documento è quello di descriverl’architettura hardware e software necessarie per la realizzazione delservizio1.2 Riferimenti[1] “Requisiti Utente e Specifiche funzionali”[2] “Progettazione della base di dati”1.3 Struttura del documentoIl 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. 56
  • 57. 2 Progettazione del sistema2.1 Architettura HardwarePer poter soddisfare le richieste dell’utente, sarà necessario che la struttura minima dell’ hardwaresia costituita da un Server su piattaforma Windows 2000 al quale, tramite connessione alla reteInternet si consente l’accesso dei Client; gli utenti accedono per mezzo di un’autenticazione, mentreper il veterinario l’accesso è libero. Solo il veterinario ha la possibilità di modificare la base dati adisposizione mentre per gli utenti la base dati è disponibile in sola letturaServerLa macchina del Server deve supportare l’applicazione e il database, perquesto si consigliano i seguenti requisiti minimi hardware: • Processore basato su architettura x86 con frequenza di lavoro 1GHz • 128 MB RAMClientLa macchina del Client richiede una connessione ad Internet,l’applicazione invia pagine contenenti fogli di stile e javascript per questomotivo si consiglia una versione recente del browser internet exploreralmeno la versione 4. 57
  • 58. 2.1 Architettura softwareL’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. Client Middle tier Backend Web/HTTP Server Browser Documenti statici http Applicazione CGI, PHP DBMS Browser PHP ISAPI, Odbc, rpc RPC NSAPI Sistemi legacy 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; 58
  • 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) 59
  • 60. 2.2 Realizzazione Software2.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><fontcolor="#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"> <inputtype=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"> <inputtype=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 lutilizzo di animali da laboratorio</FONT></B></FONT></P> 60
  • 61. <P align=left><FONT color=#000000>Bruxelles, test su sostanze chimiche in Europa: Consegnate al Parlamento UE 500.000 firme raccolte da associazioni animaliste europee per chiedere maggiori finanziamenti ai test alternativi alluso di animali ... </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> 61
  • 62. 2.2.2 Listato Stilescheda.cssBODY { BACKGROUND: white; COLOR: #000000; FONT-FAMILY: Verdana, 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-track-color: #ABC0E9; scrollbar-arrow-color: #DAE8FC}INPUT { BACKGROUND: #ffffff; BORDER-BOTTOM: #333333 1px solid; BORDER-LEFT: #333333 1pxsolid; 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: #9999991px outset; BORDER-RIGHT: #999999 1px outset; BORDER-TOP: #999999 1px outset; COLOR:#ffffff; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 11px; FONT-WEIGHT: bold}.tab-form-sx { BACKGROUND-COLOR: #f5f9fd; BORDER-RIGHT: #c2cfdf 1px solid; BORDER-TOP: #c2cfdf 1pxsolid; FONT-WEIGHT: bold; PADDING-BOTTOM: 3px; PADDING-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-DECORATION: none}A.linkTitoloNero:hover { COLOR: #444444; FONT-WEIGHT: bolder; TEXT-DECORATION: 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 { 62
  • 63. BACKGROUND-COLOR: #666666; BACKGROUND-IMAGE: url(angolo_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 2pxsolid; 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 2pxsolid; 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: #ffffff2px; 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; POSITION: 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-INDENT: 4pt; TEXT-TRANSFORM: lowercase}.elencogiallo A:hover { BACKGROUND-COLOR: #fcde69; COLOR: #333333; FONT-WEIGHT: 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-DECORATION: none} 63
  • 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." andpassword=".$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_animaleand 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"; 64
  • 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();returnfalse>Torna allhome</a>n"; document.write(presLogError);};function presIniziale(){ var pro="<TABLE border=0 cellPadding=0 cellSpacing=0 width=100%><TR><TD bgColor=#006699width=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=returnfalse;>"+nome+"</A></TD>"; pro+="<TD class=menuscheda width=10% >&nbsp;</TD><TD class=menuscheda width=25%><Aclass=menuscheda href= onClick=return false;>"+indirizzo+"</A></TD>"; pro+="<TD class=menuscheda width=10% >&nbsp;</TD><TD class=menuscheda width=15%><Aclass=menuscheda href= onClick=returnfalse;>"+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 effettuatedai tuoi amici presso lambulatorio.</DIV></TD></TR>"; tbl+="<TR><TD class=bordoTabelleRighe height=22 width=541><TABLE border=1 cellPadding=1cellSpacing=1 width=100%><TBODY>"; tbl+="<TR><td width=10%><b>Foto</b></td><td width=16%><b>Nome</b></td><tdwidth=14%><b>Specie</b></td><td width=17%><b>Razza</b></td><td width=20%><b>Evento</b></td><tdwidth=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=0src=http://localhost/VeterinarioOnLine/images/"+foto[i]+" width=90 height=70>&nbsp;&nbsp;</TD>"; txt+="<TD height=46%>"; txt+=animale[i]; txt+="<td class=elencogiallo><Ahref=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 allhomepage</b></a>n"; document.write(pro+tbl); document.write(txt);}; 65
  • 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><TDclass=cellaTabscheda>";s1+="<DIV align=center>"+titolo+"</DIV></TD></TR>";s1+="<TR><TD class=bordoTabelle vAlign=top><DIV align=right><A class=linkTitoloNero href=print.phptarget=_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=355height=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=BUTTONVALUE=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 (nfirmani@gmail.com) Last update: 10/09/2004 66