prezentacija ambulanta "otok"
DESCRIPTION
Projekt nastao unutar kolegija Baze podataka IITRANSCRIPT
PROJEKTNI ZADATAK
AMBULANTA
SVEUČILIŠTE JURJA DOBRILE U PULIODJEL ZA EKONOMIJU I TURIZAM „DR. MIJO MIRKOVIĆ“
PROJEKTNI TIMAna MirićOliver Juračić Tatjana Berc
MENTORIIzv. prof.Vanja Bevanda, dr. sc.Jasminka Finderle, Uljanik IRI
Pula, veljača 2013.
PROJEKT AMBULANTA OTOK
Projektni zadatak: stvoriti funkcionalnu bazu podataka koja bi mogla zadovoljiti primarne potrebe liječničke ambulante tvrtke Uljanik d.d.
Osim evidencije o osobama/pacijentima stvorena je evidencija o:
svim pregledimatrajanju pregledakoličini utrošenog sanitetskog materijala (promet)
Vodi se evidencija pregleda radnika, kooperanta ili nekog vanjskog na način da se prate ozljede/indikacije u određenom vremenu (satu) uz provedenu terapiju i utrošeni materijal.Po jednom pregledu može se evidentirati jedna ili više indikacija, a za svaku indikaciju može se upisati jedna ili više terapija. Evidentira se i utrošak (izlaz) i ulaz (nabava) sanitetskog materijala po pregledu.
Za radnika, kooperanta i/ili vanjsku osobu korištena je već postojeća evidencija osoba, kao i za društva, odjele i partnere (dobavljače).
Upotrebljene su:četiri tabele šifrarnika(EFPU_AMB_MATERIJALI_MJ)(EFPU_AMB_MATERIJALI)(EFPU_AMB_TERAPIJE) (EFPU_AMB_INDIKACIJE)
dvije prometne tabele (EFPU_AMB_MATERIJALI_PROMETI) (EFPU_AMB_PREGLEDI)
četiri vezne tabele(EFPU_AMB_MAT_PROM_SASTAVNICE)(EFPU_AMB_PREGLEDI_TERAPIJE)(EFPU_AMB_PREGLEDI_INDIKACIJE)(EFPU_AMB_IND_TER)
Model je nadograđen na način da je povezan preko dvije tabele (EFPU_SIF_OSOBE) i (EFPU_SIF_PARTNERI) koji su iskorišteni za „uloge“ pacijenata i dobavljača.
Šifrarnici sadrže opise pojedinih entiteta kao što su:
mjerne jediniceindikacijeterapije materijali.
Svaki ima svoji šifru, osim tabele mjernih jedinica za koje je umjesto šifre upotrjebljena oznaka, koja je različita od ID-a.
EFPU_AMB_MATERIJALI_MJ (šifrarnik mjernih jedinica)COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No Null 1 Null
SIFRA VARCHAR2(10 BYTE) No Null 2 šifra materijala
OPIS VARCHAR2(200 BYTE) No Null 3 opis materijala
MJ_ID NUMBER(10,0) No Null 4 ID mjerne jedinice
DAT_DOD DATE No Null 5 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No Null 6 user dodavanja
DAT_IZM DATE Yes Null 7 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes Null 8 user izmjene
EFPU_AMB_MATERIJALI ( šifrarnik materijala)COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No Null 1 Null
SIFRA VARCHAR2(10 BYTE) No null 2 šifra indikacije
OPIS VARCHAR2(200 BYTE) No null 3 opis indikacije
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 7 user izmjene
EFPU_AMB_INDIKACIJE (šifrarnik indikacija)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
SIFRA VARCHAR2(10 BYTE) No null 2 šifra terapije
OPIS VARCHAR2(200 BYTE) No null 3 opis terapije
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 7 user izmjene
EFPU_AMB_TERAPIJE (šifrarnik terapija)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No Null 1 Null
OZNAKA VARCHAR2(10 BYTE)
No null 2 oznaka mjerne jedinice
OPIS VARCHAR2(60 BYTE)
Yes null 3 opis mjerne jedinice
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE)
No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE)
Yes null 7 user izmjene
Prometne tabele služe za evidencijupregleda i prometa materijala (bilo ulaza ili izlaza).
U njima se osim samih prometa vode i neki jednostavni podaci za koje nismo smatrali za shodno praviti posebne tabele, poput tlaka pacijenta, napomene ili izmjerene temperature na pregledu, a vezane su striktno uz taj pregled .
EFPU_AMB_PREGLEDI (prometna tabela pregleda)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
DATUM_VRIJEME DATE No SYSDATE 2 datum i vrijeme prometa
SMJER NUMBER(10,0) No null 3 smjer prometa (1=ulaz / 0=izlaz)
PREGLED_ID NUMBER(10,0) Yes null 4 ID pregleda
PARTNER_ID NUMBER(10,0) Yes null 5 ID partnera (dobavljaca)
DAT_DOD DATE No null 6 datum dodavanja
USER_DOD VARCHAR2(30 BYTE)
No null 7 user dodavanja
DAT_IZM DATE Yes null 8 datum izmjene
USER_IZM VARCHAR2(30 BYTE)
Yes null 9 user izmjene
EFPU_AMB_MATERIJALI_PROMETI (prometna tabela ulaza i izlaza materijala)
COLUMN_ NAME DATA_ TYPE NULLABLE DATA_ DEFAULT COLUMN_ I D COMMENTS
ID NUMBER(10,0) No Null 1 null
OSOBA_ID NUMBER(10,0) No Null 2 ID osobe
PROMET_ID NUMBER(10,0) Yes Null 3 ID prometa
DATUM_VRIJEME DATE Yes Null 4 datum i vrijeme pregleda
TRAJANJE NUMBER(10,0) Yes Null 5 trajanje pregleda
TLAK_D NUMBER(10,0) Yes Null 6 izmjereni diastolički tlak - "donji"
TEMPERATURA NUMBER(10,1) Yes Null 7 izmjerena temperatura
DAT_DOD DATE No Null 8 datum dodavanja
USER_DOD VARCHAR2(30 BYTE)
No Null 9 user dodavanja
DAT_IZM DATE Yes Null 10 datum izmjene
USER_IZM VARCHAR2(30 BYTE)
Yes Null 11 user izmjene
TLAK_G NUMBER(10,0) Yes Null 12 izmjereni sistolički tlak - "gornji"
NAPOMENA VARCHAR2(2000 BYTE)
Yes Null 13 napomena - slobodan upis
EFPU_AMB_MAT_PROM_SASTAVNICE (vezna tabela prometa materijala)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
PREGLED_ID NUMBER(10,0) No null 2 ID pregleda
INDIKACIJA_ID NUMBER(10,0) No null 3 ID indikacije
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 7 user izmjene
EFPU_AMB_PREGLEDI_INDIKACIJE (vezna tabela indikacija)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
PREGLED_ID NUMBER(10,0) No null 2 ID pregleda
TERAPIJA_ID NUMBER(10,0) No null 3 ID terapije
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 7 user izmjene
EFPU_AMB_PREGLEDI_TERAPIJE (vezna tabela terapija)
Vezne tabele omogućuju vezu više na više.Neophodne u slučajevima kada želimo
omogućiti više indikacija ili terapija po pregledu ili u slučaju prometa materijala kada želimo omogućiti zaprimanje više materijala po jednoj primki ili više utrošenih materijala po pregledu, na način da uvodimo sastavnicu kao veznu tabelu.
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
PROMET_ID NUMBER(10,0) No null 2 ID prometa
POZICIJA NUMBER(10,0) No null 3 pozicija na sastavnici
MATERIJAL_ID NUMBER(10,0) No null 4 ID materijala
KOLICINA NUMBER(10,2) Yes null 5 količina materijala
DAT_DOD DATE No null 6 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 7 user dodavanja
DAT_IZM DATE Yes null 8 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 9 user izmjene
Poseban slučaj vezne tabele je veza između indikacija i terapija koja služi za:praćenje dodijeljenih terapija po indikaciji omogućava developeru aplikacije da „predloži“ terapiju nakon odabira indikacije.
EFPU_AMB_IND_TER (vezna tabela indikacija i terapija)
COLUMN_NAME DATA_TYPE NULLABLE DATA_DEFAULT COLUMN_ID COMMENTS
ID NUMBER(10,0) No null 1 Null
INDIKACIJA_ID NUMBER(10,0) Yes null 2 ID indikacije
TERAPIJA_ID NUMBER(10,0) Yes null 3 ID terapije
DAT_DOD DATE No null 4 datum dodavanja
USER_DOD VARCHAR2(30 BYTE) No null 5 user dodavanja
DAT_IZM DATE Yes null 6 datum izmjene
USER_IZM VARCHAR2(30 BYTE) Yes null 7 user izmjene
SEKVENCE
Sekvence su napravljene za svaku od tabela i jednake su za svaku od njih Počinju od broja 10000 i korak im je 1.Prilikom kreiranja sekvenci vodilo se računa o pravilima imenovanja.
Prikaz sekvence za tabelu EFPU_AMB_INDIKACIJE imenovane AMB_INDIKACIJE_SEQ
Name Value
CREATED 12.01.13
LAST_DDL_TIME 12.01.13
SEQUENCE_OWNER EFPU_AMBULANTA
SEQUENCE_NAME AMB_INDIKACIJE_SEQ
MIN_VALUE 10000
MAX_VALUE 9999999999999999999999999999
INCREMENT_BY 1
CYCLE_FLAG N
ORDER_FLAG N
CACHE_SIZE 20
LAST_NUMBER 10040
TRIGERI
Trigeri koriste sekvence kako bi umetali ID u svaku od tabelaOsim toga trigeri se koriste za umetanje datuma i korisnika koji je umetnuo ili promijenio zapis. Stoga su trigeri generalno isti za sve tabele te ih ima dva po tabeli
Dan je pregled oba trigera za tabelu (EFPU_AMB_PREGLEDI). Prvi triger se aktivira pri insertiranju reda u tabelu .
EFPU_AMB_PREGLEDI_BIR
trigger EFPU_AMB_PREGLEDI_BIR BEFORE INSERT ON EFPU_AMB_PREGLEDI FOR EACH ROW begin :NEW.dat_dod := SYSDATE; :NEW.user_dod := USER; if :NEW.ID is null then SELECT AMB_PREGLEDI_SEQ.NEXTVAL INTO :NEW.ID FROM dual; end if; end;
TRIGERI
Drugi se aktivira kod izmjene zapisa u tabeli te je različit od prvog po tome što ne ubacuje novi ID.
EFPU_AMB_PREGLEDI_BUR
trigger EFPU_AMB_PREGLEDI_BUR BEFORE UPDATE ON EFPU_AMB_PREGLEDI FOR EACH ROW begin :NEW.dat_izm := SYSDATE; :NEW.user_izm := USER; end;
Iz priloženog je vidljivo da se vodilo računa o pravilima imenovanja trigera
PAKETI I FUNKCIJE
Primjer paketa prikazan je kroz paket na tablicu (EFPU_SIF_OSOBE)Paket se sastoji od dva dijela:
zaglavlja tijela paketa koji sadrži funkcije
EFPU_SIF_OSOBE_P
create or replace
PACKAGE EFPU_SIF_OSOBE_P AS
FUNCTION UK2ID(P_OIB IN EFPU_SIF_OSOBE.OIB%TYPE) RETURN EFPU_SIF_OSOBE.ID%TYPE;
FUNCTION GET_NEXT_ID RETURN NUMBER;
END EFPU_SIF_OSOBE_P;
create or replace
PACKAGE BODY EFPU_SIF_OSOBE_P
AS
FUNCTION UK2ID(
P_OIB IN EFPU_SIF_OSOBE.OIB%TYPE)
RETURN EFPU_SIF_OSOBE.ID%TYPE
IS
V_id EFPU_SIF_OSOBE.id%TYPE;
BEGIN
SELECT t.id INTO v_id FROM efpu_sif_osobe t WHERE t.oib=p_oib;
RETURN v_id;
END UK2ID;
FUNCTION GET_NEXT_ID
RETURN NUMBER IS
v_result NUMBER;
BEGIN
SELECT SF_OS_SEQ.nextval
INTO v_result
FROM dual;
RETURN(v_result);
EXCEPTION
WHEN OTHERS THEN
RETURN NULL;
END get_next_id;
END EFPU_SIF_OSOBE_P;
PREGLED POSLOVNIH PRAVILA U BAZI
Tabele su razrađene na način da je potrebno držati se samo nekoliko pravila. Najvažnije se odnosi na tabelu (EFPU_AMB_MATERIJALI_PROMETI) u kojoj se između ostaloga nalaze tri polja:
PARTNER_ID PREGLED_ID te polje SMJER.
Potrebno je kroz aplikaciju voditi računa da se ne dozvoli upis u prva dva polja istovremeno jer se obzirom na taj upis i smjer razlikuje je li riječ o ulazu ili izlazu robe/materijala u/iz ambulante.
Ukoliko je riječ o ulazu SMJER mora biti 1 te polje PARTNER_ID treba ispuniti, a PREGLED_ID ostaviti prazno (null)Ako je riječ o izlazu onda je SMJER 0, a PREGLED_ID ispunjen.
Ostala pravila vezana su za vanjske ključeve kojima se osigurava referentni integritet na nivou baze i jedinstvene ključeve kojima se osigurava integritet šifrarnika kao na primjeru iz tabele (EFPU_AMB_INDIKACIJE) gdje je jedinstveni ključ korišten na polju ŠIFRA. Isti je postupak primijenjen na svim šifrarnicima..
INDEX _OW NE R INDEX _NA ME TABLE _OW NE R TABLE _NA ME COL UMN_NA ME
EFPU_AMBULANTA EFPU_AMB_SIF_INDIKACIJE_UK EFPU_AMBULANTA EFPU_AMB_INDIKACIJE SIFRA
SQL UPIT Broj pregleda po radniku/kooperantu u periodu sa prosječnim trajanjem
pregleda.
BROJ_PROSJEK_PREGLEDA SELECT COUNT(*) AS KOLICINA,o.ime AS IME,o.prezime AS PREZIME,p.datum_vrijeme AS DATUM, o.tip_osobe AS TIP, AVG(p.trajanje) AS PROST_TRAJANJEFROM efpu_sif_osobe o, efpu_amb_pregledi pWHERE p.osoba_id = o.idAND p.datum_vrijeme BETWEEN '21.06.2012' AND '27.06.2012'GROUP BY o.ime, o.prezime, o.tip_osobe, p.datum_vrijemeORDER BY 4;
Korištena je funkcija AVG kojom se dobiva prosjek trajanja pregleda
PREGLEDI_PO_DANU_SATUSELECT COUNT(*) AS BROJ_LJUDI, to_char(t.datum_vrijeme,'dd.mm.yyyy')||' od '||to_char(t.datum_vrijeme,'hh24')||' do '||substr(('0'||to_char(to_number(to_char(t.datum_vrijeme,'hh24')+1))),-2)||' sati' AS DATUM_SAT FROM efpu_amb_pregledi tGROUP BY to_char(t.datum_vrijeme,'dd.mm.yyyy')||' od '||to_char(t.datum_vrijeme,'hh24')||' do '||substr(('0'||to_char(to_number(to_char(t.datum_vrijeme,'hh24')+1))),-2)||' sati'ORDER BY 2;
SQL UPIT Broj pregledanih osoba po satima u danu
upit koji je dorađen da pruži ljepši ispis (od toliko do toliko sati)Rezultat upita je izlistaj na slici
SATI_U_AMB_PO_OJ
SQL UPIT Broj sati boravka u ambulanti po OJ (po odjelu)
SELECT COUNT(*) AS BROJ_POSJETA, substr((to_char(sum ((p.trajanje)/60 ), 'FM99999990D00')),1,instr((to_char(sum ((p.trajanje)/60 ), 'FM99999990D00')),',',1,1)-1)||' sati '||round(((to_number(substr((to_char(sum ((p.trajanje)/60 ), 'FM99999990D00')), instr((to_char(sum ((p.trajanje)/60 ), 'FM99999990D00')),',',1,1)+1, length(to_char(sum ((p.trajanje)/60 ), 'FM99999990D00'))-1)))*0.6),0)||' minuta' AS SATI_U_AMBULANTI, od.naziv AS OJFROM efpu_sif_osobe o, efpu_amb_pregledi p, efpu_sif_odjeli odWHERE p.osoba_id = o.idAND o.odjel_id = od.idGROUP BY od.nazivORDER BY 1 desc,2,3;
U ovom upitu sumira se trajanje pregleda po OJ (odjelu). Substring je korišten kako bi se ukupan broj minuta pretvorio u sate i ostatak minuta radi ljepšeg ispisaKao rezultat daje izlistaj na slici
BR_PAC_PO_OJ_I_IND
SQL UPIT Broj radnika/kooperanata po OJ prema indikacijama u periodu
SELECT COUNT(*) AS BR_RAD,i.opis AS INDIKACIJA,od.naziv AS OJFROM efpu_amb_pregledi p, efpu_amb_indikacije i, efpu_amb_pregledi_indikacije pi, efpu_sif_odjeli od, efpu_sif_osobe oWHERE p.id = pi.pregled_idAND i.id= pi.indikacija_idAND p.osoba_id = o.idAND o.odjel_id = od.idAND p.datum_vrijeme between '21.06.12' and '27.06.12'GROUP BY opis,nazivORDER BY 1 desc;
Jednostavan upit koji zbraja posjete ambulanti prema indikacijama i OJ (odjelu)Kao rezultat daje izlistaj na slici
SQL UPITPregled utroška sanitetskog materijala (s podacima iz pregleda ako postoji veza) za
period
UTROSAK_PO _PREGLEDU
SELECT ami.opis AS INDIKACIJA, am.opis AS MATERIJAL, sum(ams.kolicina) AS KOLIČINA, amj.oznaka AS MJ, to_char(ampr.datum_vrijeme,'dd.mm.yyyy') AS DATUM_PREGLEDA, oso.prezime AS PREZIME, oso.ime AS IMEFROM efpu_amb_materijali am, efpu_amb_materijali_mj amj, efpu_amb_mat_prom_sastavnice ams, efpu_amb_pregledi ampr, efpu_amb_pregledi_indikacije ampi, efpu_amb_indikacije ami, efpu_amb_materijali_prometi amp, efpu_sif_osobe oso WHERE am.mj_id = amj.idAND ams.materijal_id = am.idAND ams.promet_id = amp.idAND amp.smjer = 0AND amp.pregled_id = ampr.idAND ampi.pregled_id = ampr.idAND ampi.indikacija_id = ami.idAND ampr.osoba_id = oso_idAND amp.datum_vrijeme BETWEEN '21.06.2012' AND '23.06.2012'GROUP BY ami.opis, am.opis, amj.oznaka, oso.prezime, oso.ime, ampr.datum_vrijemeORDER BY 5;
Upit prikazuje utrošak sanitetskog materijala po količini i u periodu, te vezu prema pregledu u kojem je utrošen
ZALIHA_PO_SIFRI
SQL UPITZaliha sanitetskog materijala po šifri i nazivu
SELECT M.opis AS MATERIJAL, M.sifra AS SIFRA, COALESCE(ulaz.kol, 0) - COALESCE(izlaz.kol1, 0) AS ZALIHA, MJ.oznaka AS MJFROM efpu_amb_materijali_mj MJ, efpu_amb_materijali M
LEFT OUTER JOIN (SELECT SUM (mps.kolicina) as KOL, mps.materijal_id as MAT FROM efpu_amb_materijali_prometi mp, efpu_amb_mat_prom_sastavnice mps WHERE mps.promet_id= mp.id AND mp.smjer = 1 GROUP BY mps.materijal_id) ULAZ ON M.ID = ULAZ.MAT
LEFT OUTER JOIN (SELECT SUM (mps.kolicina) as KOL1, mps.materijal_id as MAT1 FROM efpu_amb_materijali_prometi mp, efpu_amb_mat_prom_sastavnice mps WHERE mps.promet_id= mp.id AND mp.smjer =0 GROUP BY mps.materijal_id) IZLAZ ON M.ID = IZLAZ.MAT1WHERE M.mj_id = MJ.id;
Posebnu pozornost trebalo je obratiti na one materijale koji su u šifrarniku a nisu nikada ušli niti izašli. Radi njih se koristi funkcija coalesce koja „null“ vrijednost ukoliko postoji pretvara u „0“
Ovaj upit je ostvaren spajanjem više tablica preko left outer joina te upotrebom dva pod selecta kojima je sumirana nabava kao ulaz te rashod kao izlaz te je oduzimanjem izlaza od ulaza dobivena zaliha.
SIGURNOSTKreiranje dva korisnika s dodjelom prava
Prvi ima naziv Ambulanta_ADM i treba mu dodijeliti sva prava nad bazom
CREATE USER Ambulanta_ADM IDENTIFIED BY pass;COMMIT;GRANT ALL PRIVILEGES TO Ambulanta_ADM;COMMIT;
Drugi naziva Ambulanta_UPIT treba ima samo prava da vidi podatke u bazi te da može raditi upite.
CREATE USER Ambulanta_UPIT IDENTIFIED BY pass;COMMIT;GRANT CREATE SESSION TO Ambulanta_UPIT;COMMIT;BEGIN FOR t IN (SELECT * FROM user_tables) LOOP EXECUTE IMMEDIATE 'GRANT SELECT ON' || t.table_name || ' TO Ambulanta_UPIT'; END LOOP;END;COMMIT;
Petlja u posljednjoj naredbi olakšava nam davanje prava „select“ na sve tabele u bazi, kako ih ne bi morali davati jednu po jednu. Kreirani korisnici su testirani i rade kako je zamišljeno.
SUČELJE ZA BAZU EFPU_AMBULANTA
Prijedlog sučelja koji je dio tima paralelno razvijao u periodima dok je za to imao vremena
nije u potpunosti funkcionalnoposlužilo je radi lakšeg unosa podataka u bazu.
Početni prozor aplikacije
Slike iz aplikacije
ZAKLJUČAKProjekt je nastao timskim radom. Iako u početku članovi tima nisu bili osposobljeni za samostalni rad unutar zadatka koji im je bio dodijeljen međusobnom suradnjom i zajedničkim sastancima došlo se do konačnog rezultata i otklonjene su sve početne nejasnoće. Sastanci su održani u više navrata, a tijek izrade projekta je podijeljen u dvije faze.
U prvoj fazi definiran je koncept baze, osmišljen načelni rad, kreirane su tabele, postavljeni vanjski ključevi te indeksiranje.Drugu faza u izradi projekta čine dvije podfaze pri čemu je tim podijeljen u dvije grupe koje samostalno rade na ostvarenju podzadataka. Prva je grupa u drugoj fazi izrađivala sekvence i trigere dok je druga proučavala i izrađivala funkcije i pakete.
Nakon korektno obavljenih podzadataka druge faze timovi se spajaju i zajednički se generiraju upiti. Prije izrade upita u bazu su uneseni zadani generički podaci. Izrada upita oduzela je najviše vremena zbog nedovoljnog poznavanja SQL naredbi od strane članova tima. Ipak, uz mnogobrojne sastanke, instrukcije i nadopune prethodno stečenog znanja dolazi se do kvalitetnog rješenja tog dijela projektnog zadatka.
Nakon što je baza izrađena kreirana je projektna dokumentacija te Powerpoint prezentacija. U fazi izrade dokumentacje i prezentacije nije bilo potrebe za održavanjem sastanaka te su korišteni suvremeni načini komuniciranja na daljinu putem interneta (chat, Voice over IP), servisi (Dropbox) i program Team Wiewer.
Smatramo da je projekt uspješno odrađen i da je stvorena funkcionalna baza podataka za praćenje rada zdravstvene ambulante.
HVALA NA POZORNOSTIIMATE LI PITANJA?