Informacioni sistem ginekoloske ordinacije

  • Upload
    -

  • View
    169

  • Download
    3

Embed Size (px)

DESCRIPTION

Sistem za evidenciju pacijenata

Citation preview

Univerzitet u Novom Sadu

Diplomski rad - IS privatne ginekoloke ordinacije Marina Mii 43/01-11

Univerzitet u Novom Sadu

Tehniki fakultet Mihajlo Pupin

Zrenjanin

Informacioni sistem privatne ginekoloke ordinacijeDIPLOMSKI RADMentor: Prof. dr Radosav Dragica Student: Mii Marina

Broj indeksa: 43/01-11

Smer: Dipl. inenjer informatike

Zrenjanin, 2006.

Sadraj1. Uvod32. Opis posla4 2.1. Najea oboljenja enskih polnih organa ....................................................42.2. Najee dijagnostike metode i intervencije u ginekologiji ........................42.3. Opis posla ......................................................................................................53. Snimak stanja73.1. Postojee stanje realnog sistema73.2. Spisak dokumenata73.3. Organizaciona strukura i povezanost sa drugim sistemima73.3.1. Interna organizaciona struktura73.3.2. Povezanost sa drugim sistemima73.4. Radna mesta, odgovornosti i ovlaenja73.5. Zakonska regulativa83.6. Lokalna pravila poslovanja83.7. Problemi83.8. Potrebe83.9. Odluke83.10. Automatizmi83.11. Perspektive razvoja sistema83.12. Organizacija rada94. Logika realizacija UML ................................................................................104.1. UML104.2. Dijagrami134.2.1. Dijagrami sluajeva korienja (Use Case Diagram)134.2.2. Dijagram klasa (Class Diagram) 224.2.3. Dijagram sekvenci (Sequence Diagram) .........................................254.2.4. Dijagram saradnje (Collaboration Diagram)....................................265. Modeli podataka275.1. Konceptualni model podataka (CDM Conceptual Data Model)275.2. Fiziki model podataka (PDM Physical Data Model)316. Opis aplikacije326.1. Hardverski zahtevi326.2. Softverski zahtevi ......................................................................................326.3. Instalacija ...................................................................................................326.4. Korienje aplikacije .................................................................................337. Objanjenje realizacije pojedinih dijaloga428. Zakljuak509. Literatura5110. Prilog521. UvodInformacioni sistem privatne ginekoloke ordinacije je pravljen na osnovu sakupljenih podataka u jednoj od privatnih ginekolokih ordinacija u Zrenjaninu. Trenutno se u njoj ne koristi nikakav informacioni sistem, niti bilo kakva organizovana elektronska obrada podataka, ve se sve radi na papiru.

Na osnovu podataka dobijenih u privatnoj ginekolokoj ordinaciji izraen je opis posla na osnovu kog je uraena analiza stvarnog stanja sistema. Ova analiza za cilj ima davanje realne slike sistema kao i ideje za njegovo poboljanje. Logika realizacija sistema je uraena pomou CASE alata Power Designer 10. i njegovih dijagrama: dijagrama sluajeva korienja, dijagrama klasa, dijagrama sekvenci i dijagrama saradnje koji su osnovni dijagrami za opisivanje sistema. Na osnovu tako preslikanog sistema izraen je konceptualni model podataka koji je osnova za buduu bazu podataka. U ovoj izradi korien je takoe Power Designer - ov alat za izradu konceptualnog modela podataka. U ovom alatu uraen je i fiziki model baze. Kreiran je SQL skript baze i baza je potom izvezena u Microsoft-ovu SQL bazu podataka. Sama aplikacija uraena je u razvojnom okruenju Microsoft Visual Studio.net 2003, programski jezik C#.2. Opis posla2.1. Najea oboljenja enskih polnih organa

1. Akutno zapaljenje Bartolinijevih lezda (Bartholinitis acuta),

2. Cista Bartonlinijeve lezde (Cystis glandulae Bartholini),

3. iljaste bradavice stidnice i vagine (Condylomata accuminata),

4. Kolpitis (Vaginitis),

5. Cervicitis (Cervicitis),

6. Endometritis (Endometritis),

7. Andeksitis (Adnexitis),

8. Metroragija (Metrorrhagia),

9. Karcinom vulve,

10. Fibromiomi materice,

11. Submukozni miom materice,

12. Rak grlia materice,

13. Rak tela materice,

14. Tumori jajnika,

15. Vezivnotkivni ovarijalni tumori,

16. Hormonski aktivni tumori (endokrini ovarijalni tumori),

17. Leukoplakija vulve,18. Krauroza vulve,

19. Tuberkuloza enskog polnog organa,

20. Sindrom predmenstrualne napetosti.

2.2. Najee dijagnostike metode i intervencije u ginekologijiKolposkopija podrazumeva pregled vaginalnog dela grlia i sluzokoe vagine pomou kolposkopa, posebnog aparata koji uveliava posmatrano polje 10-20 puta. Ovaj pregled se nadovezuje na klasian ginekoloki pregled. Kolposkopski nalaz moe biti uredan ili patoloki. Uredan nalaz moe biti: ploasto slojeviti epitel, cilindrini epitel (ectopia) ili normalna zona transformacije. Patoloki nalaz ukazuje na oboljenje i moe biti: aceto white, punktacija, mozaik, leukoplakia, jod negativno polje, atipina vaskulacija ili drugo.Celioskopija ili laparoskopija je metoda direktnog posmatranja trbunih organa. U ginekologiji ova metoda se koristi za pregled organa male karlice. Izvodi se pomou aparata cevastog oblika koji se naziva celioskop ili laparoskop. Vri se u optoj anesteziji.

Insuflacija jajovoda ili produvavanje jajovoda je intervencija pri kojoj se kroz kanal grlia materice pod odreenim pritiskom ubacuje u materinu duplju a kroz nju i jajovode u duplji male karlice, odnosno materinu upljinu, ugljen - dioksid u gasovitom stanju i time se proverava da li su jajovodi prolazni.

Histerosalpingografija slui za utvrivanje prolaznosti materice s tim da je ova metoda pouzdanija od insuflacije jajovoda jer ne samo da daje podatke o prolaznosti ili neprolaznosti jajovoda ve prua i informacije o obliku materine duplje i o mestu eventualne prepreke, zapuenja ili deformacija.

Punkcija Duglasovog prostora se vri u dijagnostike i terapijske svrhe: za dobijanje sadraja najnieg dela trbune duplje kako bi se na osnovu njegovih osobina odredila dijagnoza postojeeg stanja ili radi pranjenja stranog sadraja iz punktiranog prostora i eventualnog ubrizgavanja rastvora potrebnih lekova u taj prostor.Amniocenteza slui za dobijanje potrebne koliine plodove vode radi ispitivanja njenih biohemijskih svojstava i sadraja elijskih elemenata.

Papanikolau test ili PAP test je metoda koja se radi pre kolposkopskog pregleda. Sterilnim tapiem se uzima uzorak vaginalnog sekreta i meri se stepen njegove kontaminacije i na osnovu karakteristika deskvamisanih elija postavlja se citoloka dijagnoza. Papanikolau test ima 5 grupa: 1,2,3. grupa je normalan nalaz a 4. i 5. grupa ukazuju na malignitet.CTG pregled se vri u poslednjem mesecu trudnoe. CTG pregledom se meri broj sranih otkucaja bebe i na osnovu toga se proverava da li je plod u dobrom zdravstvenom stanju.

Ultrazvuni pregled slui da konstatujemo promene na materici (oblik, veliina, graa, promene koje se zapaaju u materici; npr.miomi - tumori). Zatim se opisuju promene na jajnicima, njihova veliina i lokalizacija i eventualni tumori (veliina, gradja, da li je sadraj tean ili gust, ima li pregrada, kakve su pregrade, da li je kapsula tumora glatka ili nazubljena i kakav je odnos tumora prema okolnim organima u maloj karlici). Zatim se opisuje endometrijum - sluzokoa materice, njegova debljina u milimetrima i na kraju opisuju se promene u Duglasovom prostoru to jest da li ima u njemu stranog sadraja (tenost).Laboratorijske analize koje se najee rade su: sedimentacija (da li je upala ili nije), kompletna krvna slika (eritrociti, leukociti, hemoglobin, hematokrit, trombociti), fibrinogen (faktor koagulacije ), glikemija (eer u krvi), urea (mokraa), kreatinin (nalazi u mokrai).

2.3. Opis poslaPregled se zakazuje telefonom ili lino. Pacijentkinja ostavlja ime i prezime, a sestra joj zakazuje slobodan termin i obavetava je o terminu. Kada pacijentkinja dodje u ordinaciju, ako nema nikoga na redu, prima se i pacijentkinja koja nema zakazan pregled.Pacijentkinja dolazi u prijemnu sobu i daje sestri line podatke: ime i prezime. Medicinska sestra pronalazi zdravstveni karton pacijenta ili otvara novi u sluaju da pacijentkinja dolazi prvi put.Ako dolazi prvi put, potrebno je da dostavi sledee podatke medicinskoj sestri: ime i prezime, datum roenja, zanimanje, adresa, mesto boravka, broj telefona, krvna grupa ene, krvna grupa mua, broj poroaja, broj abortusa, datum prve menstruacije, datum poslednje menstruacije. Ako je pacijentkinja ranije ve dolazila daje samo ime i prezime i sestra na osnovu toga pronalazi karton. Karton sestra dostavlja doktoru, a pacijentkinja odlazi u ekaonicu.

Doktor prilikom pregleda donosi objektivni kliniki nalaz i odreuje dijagnozu. Donetu dijagnozu doktor upisuje u zdravstveni karton pacijenta. Ako je potrebno leenje, doktor propisuje terapiju, odnosno daje recepte koje medicinska sestra overava.

Ukoliko terapija obuhvata leenje injekcijama medicinska sestra daje injekciju i doktor to upisuje u karton.

Nakon toga ulazi se u sobu za pregled gde doktor ustanovljava tegobe zbog kojih pacijentkinja dolazi. Na osnovu anamnestikih podataka doktor odreuje koju e vrstu pregleda da izvri, zavisno da li je pacijentkinja trudna ili nije. Kod pacijentkinja koje nisu trudne vri se klasian ginekoloki pregled, i zavisno od tegoba u konkretnom sluaju od laboratorije trae laboratorijske analize. Zatim se trai nalaz vaginalnog sekreta, vaginalni i cervikalni bris na biogram i antibiogram. Potom se uzima razmaz za Papanikolau test Na osnovu toga koja je grupa odreuje se dalji dijagnostiki tretman i terapija. Na osnovu ovih nalaza odreuje se terapija, koja moze biti konzervativna terapija sa inekcijama, tabletama, punkcijama i operativna terapija (operacije).

U sluaju sumnjivog nalaza radi se biopsija grlia (uzima se iseak) i alje nalaz na patohistoloki pregled u laboratoriju.

Posle ovih pregleda vri se ultrazvuni pregled vaginalnom ili abdominalnom sondom preko trbuha. Napominjem da se vrsta pregleda odredjuje na osnovu bolesti pacijentkinje.

Ukoliko je problem pacijenta ozbiljan i doktor proceni da ne moe da ukae pomo pacijentu on ga upuuje kod lekara specijaliste. Tada doktor prepisuje uput koji takode medicinska sestra overava. Posle odreene terapije zakazuje se kontrola pacijentu, i ukoliko stanje pacijenta nije dobro terapija mu se produava ili upuuje kod lekara specijaliste.

Kada je doktor zavrio pregled karton se vraa u kartoteku i tom prilikom se zavodi u knjizi protokola bolesnika. I time je zavrio leenje pacijenta.

Nakon pregleda medicinska sestra overava recepte, upute, naplauje pregled (klasini, ultrazvuni, laboratorijske nalaze) i izdaje raun.

Medicinski materijal (injekcije, vate, uloske, tablete, vaginalete, tenosti za razmaze) ordinacija naruuje od dobavljaa. Kad poalje narudbenicu, dobija robu i raun. Uplauje, alje uplatnicu i dobija priznanicu od dobavljaa.3. Snimak stanja3.1. Postojee stanje realnog sistema

Trenutno ne postoji informacioni sistem. Sve se obavlja runo - sva dokumentacija je na papiru.3.2. Spisak dokumenata

U ordinaciji se koristi sledea dokumentacija: Izvetaj sa pregleda, Protokol, Uput laboratoriji ili lekaru specijalisti, Recept, Raun.3.3. Organizaciona struktura i povezanost sa drugim sistemima

3.3.1 Interna organizaciona struktura

Ova ordinacija raspolae sa 6 prostorija: ekaonica, prijemna soba, prostorija za preglede i intervencije, soba sa dva kreveta za oporavak posle intervencije, garderoba (sa kartotekom) i mokri vor.

3.3.2. Povezanost sa drugim sistemima

Najvaniji sistemi sa kojima razmenjuje podatke i dokumenti koje razmenjuju su: Laboratorija Uput - zahtev za laboratorijskom analizom Laboratorijski nalaz

Ustanova lekara specijaliste Uput lekaru specijalisti

3.4. Radna mesta, odgovornosti i ovlaenja

Radna mesta i opis najvanijih zaduenja:U ovoj ordinaciji od radnog osoblja radi;

lekar specijalista ginekolog, medicinska sestra i higijeniarka.Lekar ginekolog ima najvanije odgovornosti i ovlaenja, on je zaduen za preglede, unos podataka na upute i recepte.Medicinska sestra pomae u radu lekaru, unosi podatke o novim pacijentima i pronalazi kartone postojeih pacijenata i dostavlja ih lekaru pre pregleda. Takoe overava recepte, upute i izdaje raune pacijentima.Higijeniarka brine o higijeni i istoi, odrava ordinaciju istom.

3.5. Zakonska regulativa

Rad u ordinaciji se vri prema Zakonu o zdravstvenom osiguranju i Zakonu o zdravstvenoj zatiti.

3.6. Lokalna pravila poslovanjaPotuje se pravilnik o unutranjoj organizaciji.3.7. Problemi

Jedan od najveih problema je nepostojanje informacionog sistema, ne postoji raunarski program koji bi pokrio delatnosti ordinacije, i slino.3.8. PotrebePotrebe ordinacije su: pretraga pacijentkinja po jednom, ili vie kriterijuma,

lakoa korienja,

razni statistiki podaci (izvetaji..)3.9. OdlukeSve vanije odluke koje se odnose na pacijenta donosi ginekolog. On odluuje o vrsti terapije koja e se primenjivati, kao i da li e se leenje nastaviti u toj ustanovi, ili e se pacijentkinja poslati u neku drugu zdravstvenu ustanovu.3.10. AutomatizmiAutomatska obrada jo ne postoji. Program bi trebao automatski da prijavljuje greke koje nastaju prilikom unosa raznih podataka, da vri razne pretrage

3.11. Perspektive razvoja sistema

Pravljenje informacionog sistema ginekoloke ordinacije koji e biti pouzdan i praktian.3.12. Organizacija rada

Snimkom stanja realnog sistema uoeno je da svi zaposleni nemaju predznanje za rad na raunaru i kao najefikasnije reenje se nudi unoenje podataka u program onim redom i dinamikom kojom odgovarajui dogaaji nastaju (umesto da bude zaposlena jedna osoba koja e unositi podatke sa papirnih nosilaca). Paralelnom papirnom dokumentacijom i evidencijom omoguuje se bezbednost podataka. Najmanje jednom godinje se obavlja kontrola zapisa (dokumenata i elektronskih formi) koji prate dogaaje realnog sistema, itd. Uvoenje informacionog sistema bi dovelo do bolje organizacije rada u ordinaciji.4. Logika realizacija UML4.1. UML UML je nastao kao rezultat unifikacije najpoznatijihh metoda OO modeliranja G.Booch-a, I.Jacobson-a (OOSE metod) i J.Rumbaugh-a (OMT metod), sa ciljem da se omogui:1. Modeliranje sistema korienjem objektno-orijentisanih tehnika, od koncepata do izvrnih komponenti

2. Reavanje problema skaliranja u kompleksnim sistemima

3. Kreiranje jezika modeliranja koji mogu da koriste i ovek i maina.

Jezik je prihvaen kao standardni jezik modeliranja (OMG - Object Management Group) 1997. godine, a u izradi finalnog proizvoda, pored autora UML-a, uestvovao je tim sastavljen od predstavnika najveih amerikih proizvoaa hardvera i softvera: Hewlett-Packard, I-Logix, IBM, Oracle, Platinum Technology Rational Software, Texas Instruments, Unisys, itd.

Jedinstveni jezik modeliranja podataka (Unified Modeling Language, UML) je standardni jezik za specifikaciju, vizuelizaciju, konstrukciju i dokumentaciju razvoja softverskih sistema. Namena UML-a je poveanje produktivnosti, skraenje vremena razvoja i poboljanje kvaliteta softverskog sistema.

UML nije metoda razvoja softvera ve, kao jezik za modeliranje sistema koji se zasniva na objektno-orijentisanom (OO) pristupu, predstavlja samo deo (izabrane) metode razvoja softvera. Sam UML ne zavisi od metode i samog procesa razvoja u kome e se primeniti, mada je najkorisniji ako se primeni u razvojnom procesu koji je vo|en korisnikim funkcijama, usredsreen na arhitekturu, iterativan i inkrementalan. UML moe da se koristi u razliitim fazama razvoja, od specifikacije zahteva do testiranja zavrenih, gotovih sistema. Cilj UML-a je da opie statiku strukturu i dinamiko ponaanje razliitih tipova sistema, kao to su: informacioni sistemi, tehniki sistemi, sistemi u realnom vremenu, distribuirani sistemi, sistemski softver, poslovni sistemi, itd.

Elementima modela predstavljaju se standardni OO koncepti: klase, objekti, poruke, veze meu objektima (asocijacija, zavisnost, generalizacija). Svaki element ima definisano znaenje i grafiku reprezentaciju. Elementi se mogu klasifikovati u strukturne elemente, elemente ponaanja, grupiue elemente, elemente oznaavanja i elemente povezivanja.Strukturni elementi UML-a predstavljaju statiki deo koji ukljuuje kako konceptualne tako i fizike elemente modela. Osnovni strukturni elementi su klasa, interfejs, korisnik, korisnika funkcija, komponenta, vor.

Klasa je opis skupa objekata koji imaju iste atribute i operacije, veze i semantiku.

Interfejs je kolekcija opisa operacija koje moe da izvri (usluga koje moe da prui) klasa. To je skup poruka koji se moe poslati klasi, namenjen je korisnicima klase i ne ukljuuje implementaciju tih operacija.

Korisnika funkcija (use case) prikazuje jednu funkciju sistema kako je vidi spoljni korisnik (actor). To je opis skupa akcija koje sistem izvrava da bi proizveo ponaanje koje eli specifini korisnik. Korisnika funkcija, dakle, slui da struktuira ponaanje u modelu.

Komponenta je fiziki deo sistema koji je saglasan sa nekim skupom interfejsa i realizuje ga. Komponenta moe biti izvorni ili izvrni program. Komponente mogu da se grupiu u pakete.

vor je fiziki element koji postoji u vreme izvravanja i predstavlja raunarski resurs, sistem ili ureaj. Skup komponenti moe da bude smeten na jednom voru a moe i da se premesti sa jednog na drugi vor.

Grafika reprezentacija strukturnih elemenata UML-a data je na slici 1.

a)

b)

c)

d)

e)

Slika 1: a) klasa b) korisnika funkcija c)korisnik d)komponenta e)vor Elementi ponaanja - Ovaj skup elemenata predstavlja dinamiki deo UML modela. To su, pre svega, interakcija i maina stanja. Interakcija je ponaanje koje ukljuuje skup poruka koje se razmenjuju meu objektima u specifinom kontekstu. Grafiki, poruka se predstavlja usmerenom linijom du linka izmeu objekata (slika 2).

Slika 2: poruke meu objektima

Maina stanja je ponaanje koje opisuje niz stanja kroz koja prolazi objekat ili interakcija u toku svog ivota. Stanje se grafiki predstavlja zaobljenim pravougaonikom.Grupiui elementi - Ovi elementi predstavljaju organizacioni deo UML modela, tj. dekompoziciju modela, i ukljuuju koncept paketa. U paket se mogu smestiti strukturni elementi, elementi ponaanja, pa i drugi grupiui elementi - paketi. Paketi postoje samo u vreme razvoja sistema i predstavljaju, za razliku od komponenti, konceptualni element. Grafiki,

Elementi oznaavanja - Elementi oznaavanja odnose se nadeo UML modela za objanjenja. To su komentari koji opisuju, rasvetljavaju, i uvode napomene i ogranienja o elementima modela. Osnovni element oznaavanja je beleka koja se pridruuje elementu ili kolekciji elemenata. Grafiki,

Elementi povezivanja - U UML-u postoje tri osnovne vrste elemenata povezivanja: zavisnost, asocijacija i generalizacija.

Zavisnost je semantika relacija izmeu dva elementa u kojoj promena jednog (nezavisnog) elementa moe da utie na semantiku drugog (zavisnog) elementa.

Asocijacija je strukturna veza koja opisuje skup linkova (veza izmeu objekata). Posebna vrsta asocijacije je agregacija, koja predstavlja strukturnu vezu celine i njenih delova. Asocijacija moe da bude usmerena, moe da ukljui ime, uloge elemenata koje povezuje i kardinalnost veze.

Generalizacija je veza celina/deo u kojoj objekti elementa koji se specijalizuje (deo) mogu u svakom trenutku zameniti objekte elementa koji je njihovo uoptenje. Ova veza moe da se uspostavi me|u raznim elementima modela - npr. meu klasama, korisnicima, itd. Grafiki, razni elementi povezivanja prikazani su na slici 3.

a)zavisnostb)asocijacijac)agregacijad)generalizacijaSlika 3: elementi povezivanja meu klasama

Dijagrami- Dijagrami su grafike strukture koje opisuju pojedine delove ili aspekte sistema koriste}i grafiki prikaz elemenata UML modela i obino se pridruuju jednom pogledu. Pogledi predstavljaju razliite aspekte sistema koji se modelira. U UML-u postoji devet vrsta dijagrama:

1. Dijagram klasa

2. Dijagram objekata

3. Dijagram korisnikih funkcija

4. Dijagram sekvenci (redosleda)

5. Dijagram saradnje

6. Dijagram stanja

7. Dijagram aktivnosti

8. Dijagram komponenti

9. Dijagram razmetaja

Svaki pogled na sistem koristi vie vrsta dijagrama za prikazivanje svog sadraja a, sa druge strane, jedna vrsta dijagrama moe da se koristi za prikazivanje delova modela u raznim pogledima na sistem. 4.2. DijagramiLogika realizacija je izvedena uz pomo dva dijagrama UML-a: dijagrama sluajeva korienja i dijagrama klasa.

4.2.1. Dijagrami sluajeva korienja (Use Case Diagram)Model sluajeva korisenja predstavlja opis funkcionalnosti sistema sa aspekta korisnika. Dijagrami sluaja korienja sadre uesnike i sluajeve korisenja kao i veze izmeu njih. Svaki sluaj korienja se detaljno opisuje. Cilj modeliranja sluajevima korienja je dobijanje jasnog i preciznog opisa osnovnih funkcija sistema koji predstavljaju osnovu za dalju analizu i projektovanje sistema.U ovom radu postoji 7 dijagrama sluajeva korienja: Use Case pregled, Use Case doktori, Use Case izvetaji, Use Case ostali nalazi, Use Case pacijenti, Use Case zakazivanje i Use Case uesnici.

NameCodeParent

Zakazivanje pregledaZakazivanje_pregledaObject-Oriented Model 'oom is ordinacije'

Provera slobodnog terminaProvera_slobodnog_terminaObject-Oriented Model 'oom is ordinacije'

Ostavljanje imena i prezimenaOstavljanje_imena_i_prezimenaObject-Oriented Model 'oom is ordinacije'

Izdavanje kartonaIzdavanje_kartonaObject-Oriented Model 'oom is ordinacije'

Ostavljanje ostalih licnih podatakaOstavljanje_ostalih_licnih_podatakaObject-Oriented Model 'oom is ordinacije'

Otvaranje novog kartonaOtvaranje_novog_kartonaObject-Oriented Model 'oom is ordinacije'

Unos anamnezeUnos_anamnezeObject-Oriented Model 'oom is ordinacije'

Unos dijagnozeUnos_dijagnozeObject-Oriented Model 'oom is ordinacije'

Unos podataka o klasicnom pregleduUnos_podataka_o_klasicnom_pregleduObject-Oriented Model 'oom is ordinacije'

Unos podataka o pregleduUnos_podataka_o_pregleduObject-Oriented Model 'oom is ordinacije'

Unos podataka o CTG pregleduUnos_podataka_o_CTG_pregleduObject-Oriented Model 'oom is ordinacije'

Unos podataka o ultrazvucnom pregleduUnos_podataka_o_ultrazvucnom_pregleduObject-Oriented Model 'oom is ordinacije'

Unos podataka o kolposkopskom i PAP pregleduUnos_podataka_o_kolposkopskom_i_PAP_pregleduObject-Oriented Model 'oom is ordinacije'

Izdavanje uputaIzdavanje_uputaObject-Oriented Model 'oom is ordinacije'

Zahtev za laboratorijski nalazZahtev_za_laboratorijski_nalazObject-Oriented Model 'oom is ordinacije'

Stampanje uputaStampanje_uputaObject-Oriented Model 'oom is ordinacije'

Stampanje podataka o pregleduStampanje_podataka_o_pregleduObject-Oriented Model 'oom is ordinacije'

Stampanje racunaStampanje_racunaObject-Oriented Model 'oom is ordinacije'

Stampanje protokolaStampanje_protokolaObject-Oriented Model 'oom is ordinacije'

Unos podataka o doktorimaUnos_podataka_o_doktorimaObject-Oriented Model 'oom is ordinacije'

Izmena podataka o doktorimaIzmena_podataka_o_doktorimaObject-Oriented Model 'oom is ordinacije'

Brisanje podataka o doktorimaBrisanje_podataka_o_doktorimaObject-Oriented Model 'oom is ordinacije'

Odabir doktoraOdabir_doktoraObject-Oriented Model 'oom is ordinacije'

Odabir pacijentaOdabir_pacijentaObject-Oriented Model 'oom is ordinacije'

Unos podataka o pacijentuUnos_podataka_o_pacijentuObject-Oriented Model 'oom is ordinacije'

Izmena podataka o pacijentuIzmena_podataka_o_pacijentuObject-Oriented Model 'oom is ordinacije'

Brisanje podataka o pacijentuBrisanje_podataka_o_pacijentuObject-Oriented Model 'oom is ordinacije'

Tabela 1. Spisak svih sluajeva korienja

Slika 4. Use Case Diagram PregledNa slici 4. je predstavljen dijagram Use Case pregled. Na njemu se nalazi jedan uesnik Doktor i 7 sluajeva korienja: Unos anamneze, Unos dijagnoze, Unos podataka o pregledu koji moe biti: Unos podataka o klasinom pregledu, Unos podataka o CTG pregledu, Unos podataka o ultrazvunom pregledu ili Unos podataka o kolposkopskom i PAP pregledu.

Slika 5. Use Case diagram doktoriNa slici 5 se nalazi dijagram Use Case doktori. Modelom je predvieno dodavanje, izmena i brisanje vie doktora koji mogu biti zaposleni u ordinaciji. Na ovom dijagramu se nalaze 2 uesnika: korisnik i doktor i 4 sluaja korienja: Odabir doktora, Unos podataka o doktorima, Izmena podataka o doktorima i Brisanje podataka o doktorima.

Slika 6. Use case diagram izvetajiNa ovom dijagramu se nalaze 4 uesnika: pacijent, sestra, korisnik i doktor, i 6 sluaja korienja: tampanje rauna, tampanje protokola, tampanje uputa, tampanje podataka o pregledu, Izdavanje uputa i Unos podataka o pregledu.

Slika 7. Use Case diagram ostali nalaziNa ovom dijagramu se nalazi 5 uesnika: Sestra, Doktor, Korisnik, Specijalista i Laboratorija mada je u sutini najbitniji Korisnik jer on obavlja radnje. Takoe se nalazi 3 Use Case-a: Izdavanje uputa, tampanje uputa i Zahtev za laboratorijski nalaz.Slika 8. Use case diagram Pacijenti

Na slici 8 se nalazi dijagram sluajeva korienja Use Case pacijenti koji sadri 3 uesnika: Pacijent, Sestra i Korisnik i 8 sluajeva korienja: Ostavljanje imena i prezimena, Ostavljanje ostalih linih podataka, Otvaranje novog kartona, Izdavanje kartona, Unos podataka o pacijentu, Izmena podataka o pacijentu, Brisanje podataka o pacijentu, Odabir pacijenta.

slika 9. Use Case diagram uesniciSlika 9 prikazuje Use Case dijagram uesnici koji predstavlja hijerarhiju i organizacionu strukturu uesnika sistema.

slika 10 Use Case dijagram zakazivanjePoslednji Use case dijagram je Use case zakazivanje koji ima 3 uesnika: Pacijent, Sestra i Korisnik i 3 sluajeva korienja: Ostavljanje imena i prezimena, Provera slobodnog termina i Zakazivanje pregleda.4.2.2. Dijagram klasa (Class Diagram)Dijagram klasa pripada statikom modelu sistema i prikazuje statiku strukturu klasa u sistemu. Klase predstavljaju objekte koje sistem obrauje, a mogu se nalaziti u razliitim tipovima meusobnih odnosa: asocijaciji (povezane jedna sa drugom), agregaciji (zavisne jedna od druge), specijalizaciji (jedna je specijalan sluaj - podklasa druge), ili spakovane (grupisane kao celina). Opis sistema moe da sadri vie dijagrama klasa. Statikim modelom sistema se opisuju entiteti sistema. Entiteti i veze izmeu njih predstavljeni su klasama i vezama izmeu klasa prikazanih na dijagramu klasa.

slika 11 Dijagram klasaKlase su predstavljene bez vidljivih atributa i operacija da bi lepo stale na dijagram. Sledi spisak klasa i opis svake pojedinane klase.

NameCodeParentGenerateVisibilityAbstractClass Type

AnamnezaAnamnezaObject-Oriented Model 'oom is ordinacije'XpublicClass

DoktorDoktorObject-Oriented Model 'oom is ordinacije'XpublicClass

LaboratorijaLaboratorijaObject-Oriented Model 'oom is ordinacije'XpublicClass

Laboratorijski nalazLaboratorijskiNalazObject-Oriented Model 'oom is ordinacije'XpublicClass

MestoMestoObject-Oriented Model 'oom is ordinacije'XpublicClass

OrdinacijaOrdinacijaObject-Oriented Model 'oom is ordinacije'XpublicClass

PacijentPacijentObject-Oriented Model 'oom is ordinacije'XpublicClass

PregledPregledObject-Oriented Model 'oom is ordinacije'XpublicClass

RacunRacunObject-Oriented Model 'oom is ordinacije'XpublicClass

SifreSifreObject-Oriented Model 'oom is ordinacije'XpublicClass

UputUputObject-Oriented Model 'oom is ordinacije'XpublicClass

Ustanova kojoj se upucujeUstanovaKojojSeUpucujeObject-Oriented Model 'oom is ordinacije'XpublicClass

App pregledAppPregledObject-Oriented Model 'oom is ordinacije'XpublicClass

App doktorAppDoktorObject-Oriented Model 'oom is ordinacije'XpublicClass

App pacijentAppPacijentObject-Oriented Model 'oom is ordinacije'XpublicClass

Spisak pacijenataSpisakPacijenataObject-Oriented Model 'oom is ordinacije'XpublicClass

Spisak pregledaSpisakPregledaObject-Oriented Model 'oom is ordinacije'XpublicClass

Spisak doktoraSpisakDoktoraObject-Oriented Model 'oom is ordinacije'XpublicClass

Tabela 2. Spisak svih klasaKlasa Anamneza ima sledee atribute: Licna_bolesti, Porodicna_bolesti, Ginekoloska_urednost, Ginekoloska_bolna, Ginekoloska_obilnost, Ginekoloska_podaci o deci, ID_anamneze, Broj abortusa, Broj porodjaja, Datum_prve_menstruacije, Datum_poslednje_menstruacije, Krvna_grupa i Krvna_grupa_muza. Klasa Anamneza nema neke posebne operacije sem set-era i get-era za svaki atribut.Klasa Doktor ima sledee atribute: ID doktora, Ime doktora i Prezime doktora. Nema neke posebne operacije sem set-era i get-era za svaki atribut.

Klasa Spisak Doktora nema atribute ali ima operacije: Unesi podatke o doktoru, Brisi podatke o doktoru, Izmeni podatke o doktoru, Doktor postoji i Daj doktora.

Klasa AppDoktor nema atribute, ima operacije: Unesi podatke o doktoru, Brisi podatke o doktoru, Izmeni podatke o doktoru, Izaberi doktora i Daj sve doktore.

Klasa Pacijent ima atribute: Broj kartona, Datum rodjenja, Ime pacijenta, Prezime pacijenta,

Telefon pacijenta, Adresa pacijenta, Mesto i Zanimanje.

Klasa Spisak Pacijenata nema atribute ali ima operacije: Dodaj podatke o pacijentu, Obrisi podatke o pacijentu, Izmeni podatke o pacijentu, Doktor postoji i Daj pacijenta.

Klasa AppPacijent ima operacije: Dodaj podatke o pacijentu, Obrisi podatke o pacijentu, Izmeni podatke pacijentu, Izaberi pacijenta i Daj sve pacijente.Klasa Raun ima atribute:Broj rauna, Datum uplate i Uplaeni iznos, nema operacije.

Klasa Pregled ima atribute: Id pregleda, Opis, Objektivni kliniki nlaz, Naziv dijagnoze, Prepisana terapija, Komentar, Datum pregleda, Kolposkopija opis, PAP grupa. Nema opercije.

Klasa Spisak Pregleda nema atribute ali ima operacije: Unesi podatke o pregledu, Brii podatke pregledu, Izmeni podatke o pregledu, Pregled postoji i Daj pregled.

Klasa AppPregled ima operacije: Unesi podatke o pregledu, Brii podatke pregledu, Izmeni podatke o pregledu, Izaberi pregled i Daj sve preglede.

Klasa Ordinacija ima atribute: ID ordinacije, Naziv ordinacije i Adresa ordinacije.

Klasa Mesto ima sledee atribute: PTT i Naziv mesta. Nema operacije.Klasa Laboratorija ima atribute: ID laboratorije, ifra nalaza, Naziv laboratorije i Adresa laboratorije. Nema operacije.Klasa Laboratorijski nalaz ima atribute: Id vrste nalaza, Datum izdavanja nalaza i Nalaz. Nema operacije.

Klasa Ustanova kojoj se upuuje ima atribute: Id ustanove, Naziv ustanove, nema operacije.Klasa Uput ima atribute: ifra uputa, Datum upuivanja, Uputna dijagnoza, nema operacije.Klasa ifre ima atribute: Korisniko ime i ifra, nema operacije.

4.2.3. Dijagram sekvenci (Sequence Diagram)Dijagram sekvenci se prikazuje komunikaciju izmeu skupa objekata, ostvarenu pomou poruka koje objekti meusobno razmenjuju u cilju ostvarivanja oekivanog ponaanja. Ima dve dimenzije: vertikalnu (za vreme) i horizontalnu (za objekte).Akcenat se stavlja na opisu sekvenci poruka odnosno na opisu poruka i njihovom redosledu, a nisu prikazane veze izmeu objekata. Jedan dijagram moe sadrati jedan ili vie scenarija.slika 12 Dijagram sekvenci unos novog pregleda

Na ovom dijagramu sekvenci je prikazan tok kontrole za dodavanje novog pregleda u spisak pregleda. Ovaj tok kontrole poinje tako to sa klijentske strane stie poruka za kreiranje pojavi klase Spisak pregleda. Nakon toga proverava se metodom Pregled Postoji(IdPregleda) da li se u spisku pregleda ovakav pregled ve nalazi. Ukoliko pregled postoji vraa se poruka da pregled sa tim ID-jem ve postoji a ukoliko ne, poziva se metoda za kreiranje i unose se podaci o pregledu. Zatim se objekat unosi u spisak pregleda i nakon svega toga prikazuje korisniku.4.2.4. Dijagram saradnje (Collaboration Diagram)

Dijagram saradnje predstavlja dinamiki dijagram objekta kojim se opisuje saradnja i i interakcija odnosno komunikacija izmeu objekata u sistemu. Saradnja izmeu objekata prikazuje se objektima i njihovim meusobnim vezama. Komunikacija izmedju objekata se opisuje porukama koje objekti meusobno razmenjuju, ostvarujuci na taj nain oekivano ponaanje i odreenu funkcionalnost sistema. Ovi dijagrami opisuju realizaciju operacije, klase ili slucaja korisenja. Naglaena je veza izmeu objekata.Odraen je dijagram saradnje unos novog pregleda gde se vidi saradnja izmeu objekata klase pregled i spisak pregleda u okviru dodavanja novog pregleda u spisak pregleda.

slika 13. Dijagram saradnje unos novog pregleda5. Modeli podataka

5.1. Konceptualni model podataka (CDM)

On je najpopularniji semantiki model podataka III generacije koji se koristi za projektovanje konceptualne eme baze podataka. Konceptualna ema predstavlja takav model realnog sistema i pripadajue baze podataka, koji ne zavisi od konkretne tehnologije sistema za upravljanje bazom podataka.

Dobijeni konceptualni model podataka Power Designer 10.0.0.1077. moe lako prevesti u fiziki model podataka, a zatim i generisati konkretnu Bazu podatka.

Osnovni elementi konceptualnog modela podataka su:

entiteti,

elementarni podaci,

atributi,

domeni,

relacije.

Na slici 14. je prikazan konceptualni model podataka dobijen iz dijagrama klasa.

slika 14. Konceptualni model podataka

NameCodeDomainData TypeLengthPrecision

Licna_bolestiLICNA_BOLESTITXT

Porodicna_bolestiPORODICNA_BOLESTITXT

Ginekoloska_urednostGINEKOLOSKA_UREDNOSTTXT

Ginekoloska_bolnaGINEKOLOSKA_BOLNATXT

Ginekoloska_obilnostGINEKOLOSKA_OBILNOSTTXT

ID anamnezeID_ANAMNEZETXT

Ginekoloska_podaci o deciGINEKOLOSKA_PODACI_O_DECITXT

ID doktoraID_DOKTORATXT

Ime doktoraIME_DOKTORATXT

Prezime doktoraPREZIME_DOKTORATXT

Broj abortusaBROJ_ABORTUSAI

Broj porodjajaBROJ_PORODJAJAI

Datum poslednje menstruacijeDATUM_POSLEDNJE_MENSTRUACIJEDT

Datum prve menstruacijeDATUM_PRVE_MENSTRUACIJEDT

Krvna grupaKRVNA_GRUPATXT

Krvna grupa muzaKRVNA_GRUPA_MUZATXT

ID laboratorijeID_LABORATORIJETXT

Sifra nalazaSIFRA_NALAZATXT

Naziv laboratorijeNAZIV_LABORATORIJETXT

Adresa laboratorijeADRESA_LABORATORIJETXT

ID nalazaID_NALAZATXT

Datum izdavanja nalazaDATUM_IZDAVANJA_NALAZADT

NalazNALAZTXT

PTTPTTTXT

Naziv mestaNAZIV_MESTATXT

ID ordinacijeID_ORDINACIJETXT

Naziv ordinacijeNAZIV_ORDINACIJETXT

Kolposkopija opisKOLPOSKOPIJA_OPISTXT

Adresa ordinacijeADRESA_ORDINACIJETXT

KomentarKOMENTARTXT

Broj kartonaBROJ_KARTONATXT

Datum rodjenjaDATUM_RODJENJADT

Ime pacijentaIME_PACIJENTATXT

Prezime pacijentaPREZIME_PACIJENTATXT

Telefon pacijentaTELEFON_PACIJENTATXT

Adresa pacijentaADRESA_PACIJENTATXT

Naziv dijagnozeNAZIV_DIJAGNOZETXT

ZanimanjeZANIMANJETXT

ID pregledaID_PREGLEDATXT

OpisOPISTXT

Objektivni klinicki nalazOBJEKTIVNI_KLINICKI_NALAZTXT

PAP grupaPAP_GRUPATXT

Broj racunaBROJ_RACUNATXT

Datum uplateDATUM_UPLATEDT

Uplaceni iznosUPLACENI_IZNOSDC

Korisnicko imeKORISNICKO_IMETXT

SifraSIFRATXT

Prepisana terapijaPREPISANA_TERAPIJATXT

Sifra uputaSIFRA_UPUTATXT

Datum upucivanjaDATUM_UPUCIVANJADT

Uputna dijagnozaUPUTNA_DIJAGNOZATXT

ID ustanoveID_USTANOVETXT

Naziv ustanoveNAZIV_USTANOVETXT

Datum pregledaDATUM_PREGLEDADT

Tabela 3. Spisak Data item-a CDM-a5.2 . Fiziki model podataka (PDM)Relacioni model predstavljamo putem eme koja je generisana od prethodnog CDM modela pomou paketa Power Designer 10.0.0.1077.

Slika 15. Fiziki model podataka6. Opis aplikacije

6.1. Hardverski zahtevi

Minimalni hardverski zahtevi: Preporuljivi hardverski zahtevi:

Pentium II na 300 MHz Pentium IV na 1.7 GHz64 MB RAM memorije

256 MB RAM memorijeColor SVGA monitor 15 ina Color SVGA monitor 17 ina

10 Gb hard disk 40 Gb hard disk

CD ROM 32x

CD ROM 52x

Flopi disk drajv 3.5 ina Flopi disk drajv 3.5 ina

Mi Mi

Tastatura Tastatura

6.2. Softverski zahtevi

Program je mogue koristiti na PC raunarima sa instaliranim WINDOWS XP Professional operativnim sistemom SP1. Potrebna rezolucija ekrana je 1024x768 piksela. Testiranje softvera vreno je na WINDOWS XP Professional operativnom sistemu SP2. Kompatibilnost sa WINDOWS 2000,98/95/ME operativnim sistemima nije zagarantovana. Takoe je potrebno instalirati Microsoft .NET Framework SDK v1.1. a za potrebe korienja baze podataka potrebno je imati instaliran SQL Server 2000.6.3. InstalacijaInstalaciona verzija softvera se isporuuje u folderu Install. Ovaj folder sadri fajlove Setup.Ini, Setup.msi i jedan izvrni fajl Setup.Exe. Instalaciju pokrenuti aktiviranjem fajla Setup.Exe. Pojavljuje se prozor sa nazivom Welcome to the Setup Wizard. Aktivirajte taster Next. U prozoru Select installation folder izaberite destinaciju na koju elite da se aplikacija instalira aktiviranjem tastera Browse. Nakon odabira putanje, aktivirajte taster Next. U prozoru Confirm installation jo jednom aktivirajte taster Next nakon ega zapoinje instalacija aplikacije. Na kraju instalacije aktivirajte taster Close. Zatim je potrebno povezati fajl baze podataka sa SQL Serverom 2000. Pokrenite SQL Server Enterprise Manager. Klikom na levi taster mia pristupate destinaciji: Console Root > Microsoft SQL Servers > SQL Server Group > (local). Klikom na desni taster mia na folder Databases otvara se iskaui meni. Odaberite opciju All Tasks, pa zatim Attach Database. U prikazanom dijalogu se navede putanja fajla koji sadri bazu (DIPLOMSKA.mdf), a nalazi se u folderu 'Data na cd-u.6.4. Korienje aplikacijeKada se pokrene fajl 'IS privatne ginekoloske ordinacije.exe' otvara se Splash Screen koji nosi pozdravnu poruku. Kada on nestane sa ekrana pojavljuje se glavna forma koja ne sadri glavni meni kako je to postalo uobiajeno za aplikacije ovakvog tipa, ve nekoliko dugmia kojima se moe lako prei na eljenu akciju.

slika 16. Glavna forma aplikacije

Kada se klikne na unos novog pacijenta, otvara se forma za unos podataka o novom pacijentu.

slika 17. Forma za unos, izmenu podataka o pacijentKada se potvrdi snimanje podataka klikom na Potvrdi, moe se pristupiti unosu Anamneze. Anamneza je opte zdravstveno stanje pacijenta, nezavisno od pregleda, koje se unosi obino na prvom pregledu. Ako je anamneza ranije uneena ona e se na ovoj formi iitati iz baze. Nije omoguena izmena ni brisanje anamneze.

slika 18. Forma za unos ili iitavanje anamnezeAko se eli uitavanje podataka ve postojeeg pacijenta, onda se sa glavne forme izabere opcija Uitavanje postojeeg pacijenta i otvara se forma za izbor pacijenta po kriterijumu: Broju kartona ili Prezimenu i imenu.

slika 19. Forma za izbor podataka postojeeg pacijenta

Kada se pacijent odabere (klikom na Pronadji i odabirom u list boxu i Potvrdi) njegovi podaci se prenose na formu o podacima o pacijentu.Sa forme o podacima o pacijentu se poziva Uitavanje pregleda. Bira se vrsta pregleda koja eli da se uita klikom na njen naziv.

slika 20. Izbor vrste pregleda

Ako ne postoje pregledi za odabranog pacijenta, aplikacija to javlja odgovarajuom porukom. Ako postoje, otvara se forma za unos pregleda zavisno od vrste pregleda koji je odabran. Ako je odabran Klasian ginekoloki pregled, otvara se sledea forma:

slika 21. Forma za unos podataka sa klasinog ginekolokog pregledaAko se klikne na Ultrazvuni pregled otvara se forma za unos podataka sa ultrazvunog pregleda.

slika 22. Forma za unos podataka sa ultrazvunog pregleda

Ako korisnik klikne na CTG pregled, otvara se forma za unos podataka sa CTG pregleda.

slika 23. Forma za unos podataka sa CTG pregledaI na kraju, unos podataka sa kolposkopije i/ili Papanikolau testa klikom na Kolposkopija i PAP test.

slika 24.Unos podataka sa kolposkopije i/ili Papanikolau testaKao to se vidi na svakoj slici sa podacima sa pregleda, u gornjem delu forme pie koji je po redu pregled te vrste za odabranog pacijenta, i kliktanjem na dugmie prethodni, sledei mogu se prelistavati stari pregledi.

Takoe se moe vriti Izmena podataka sa pregleda klikom na dugme . Kada se vrednosti promene obavezno je da se klikne na da bi se izmene i sauvale.

Izvetaj o pregledima se moe dobiti klikom na za svaku vrstu pregleda posebno.

Osim unosa i iitavanja podataka o pregledima, za ve odabranog pacijenta se sa forme sa podacima o pacijentu moe prei na forme za zatim formu za

slika 25. Forma za unos recepta

ili

slika 26. Forma za unos uputaAko je u ordinaciji zaposleno vie doktora, podaci o njima se pozivaju sa glavne forme klikom na dugme Podaci o doktorima i otvara se forma

slika 27. Forma za obradu podataka o doktorimagde je mogue vriti pregled, unos, izmenu i brisanje podataka o doktorima. Vano je na ovom mestu naglasiti da je jedino za doktore omogueno brisanje podataka jer oni mogu poeti i prestati da rade u ordinaciji, a podatke o pacijentima i pregledima po zakonu niko ne sme obrisati pa se i izmena tih podataka vrlo ograniava i ne preporuuje.

Protokol ili spisak svih pregleda u datoj ordinaciji se dobija klikom na dugme sa glavne forme.

Podaci o autoru ove aplikacije se takoe pokreu sa glavne forme klikom na gde se otvara forma sa osnovnim podacima o autoru.

slika 28. Forma o Autoru

Poziv pomonog fajla (Help) se moe dobiti pokretanjem opcije sa glavne forme.

Postoje izvetaji o pacijentima, doktorima, pregledima, tampanje recepta, rauna, uputa i protokola. Primer jednog izvetaja je izvetaj o pacijentima.

slika 29. Primer izvetaja spisak svih pacijenata

7. Objanjenje realizacije pojedinih dijalogaKlase i metode koje su koriene u aplikaciji su veim delom izgenerisane iz Power Designer-a klikom na Generate C# code u okviru Language opcije kada se nalazimo na Class diagram-u. Primer jedne od takvih klasa sa metodama koje ona koristi moe biti klasa AppPacijent.

/***********************************************************************

* Module: AppPacijent.cs

* Author: Mayana

* Purpose: Definition of the Class AppPacijent

***********************************************************************/

using System;

using System.Data;

using System.Data.SqlClient;

public class AppPacijent

{

SqlConnection sqlConnection1 = new SqlConnection();

Pacijent paci = new Pacijent();

public AppPacijent()

{

string ConnString = "";

string SQL = "";

ConnString = @"workstation id=.;packet size=4096;integrated security=SSPI;data source=.;persist security info=True;initial catalog=DIPLOMSKA";

SQL=@"SELECT * FROM PACIJENT";

sqlConnection1.ConnectionString = ConnString;

SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(SQL, sqlConnection1);

sqlConnection1.Open();

DataSet dsPacijent = new DataSet();

sqlDataAdapter1.Fill(dsPacijent, "PACIJENT");

foreach (DataRow dr in dsPacijent.Tables["PACIJENT"].Rows)

{

Pacijent pac = new Pacijent();

pac.BrojKartona=Convert.ToInt32(dr["BROJ_KARTONA"].ToString());

AppPozivaSpisakPacijenata.DodajPodatkeOPacijentu(pac);

}

}

public int DodajPodatkeOPacijentu(Pacijent noviPacijent)

{

string SQL = "";

SQL=@"SELECT * FROM PACIJENT";

if (noviPacijent!=null)

{

AppPozivaSpisakPacijenata.DodajPodatkeOPacijentu(noviPacijent);

SqlDataAdapter sqlDataAdapter2 = new SqlDataAdapter(SQL,sqlConnection1);

DataSet dsPacijent = new DataSet();

sqlDataAdapter2.Fill(dsPacijent, "PACIJENT");

int broj = noviPacijent.BrojKartona;

string ime = noviPacijent.ImePacijenta;

string prezime = noviPacijent.PrezimePacijenta;

string adresa = noviPacijent.AdresaPacijenta;

string telefon = noviPacijent.TelefonPacijenta;

string datum = noviPacijent.DatumRodjenja.ToString();

string zanimanje = noviPacijent.Zanimanje;

string Mesto = noviPacijent.Mesto;

DataRow row = dsPacijent.Tables["PACIJENT"].NewRow();

sqlDataAdapter2.InsertCommand = new SqlCommand("INSERT INTO PACIJENT (BROJ_KARTONA,DATUM_RODJENJA,IME_PACIJENTA,PREZIME_PACIJENTA,TELEFON_PACIJENTA,ADRESA_PACIJENTA,ZANIMANJE,Mesto) VALUES ("+broj+",CONVERT(DATETIME, '"+datum+"'),'"+ime+"','"+prezime+"','"+telefon+"','"+adresa+"','"+zanimanje+"', '"+Mesto+"')",sqlConnection1);

dsPacijent.Tables["PACIJENT"].Rows.Add(row);

sqlDataAdapter2.Update(dsPacijent, "PACIJENT");

}

return 0;

}

public int ObrisiPodatkeOPacijentu(Pacijent postojeciPacijent)

{

AppPozivaSpisakPacijenata.ObrisiPodatkeOPacijentu(postojeciPacijent);

string komandaDelete = "DELETE FROM PACIJENT WHERE BROJ_KARTONA = "+postojeciPacijent.BrojKartona+"";

SqlCommand BrisanjeKomanda = new SqlCommand(komandaDelete,sqlConnection1);

BrisanjeKomanda.ExecuteNonQuery();

return 0;

}

public int IzmeniPodatkeOPacijentu(Pacijent noviPacijent, Pacijent postojeciPacijent)

{

noviPacijent.BrojKartona=postojeciPacijent.BrojKartona;

string komanda = "UPDATE PACIJENT SET BROJ_KARTONA="+noviPacijent.BrojKartona+",DATUM_RODJENJA='"+noviPacijent.DatumRodjenja+"', IME_PACIJENTA='"+noviPacijent.ImePacijenta+"', PREZIME_PACIJENTA='"+noviPacijent.PrezimePacijenta+"',TELEFON_PACIJENTA='"+noviPacijent.TelefonPacijenta+"', ADRESA_PACIJENTA='"+noviPacijent.AdresaPacijenta+"', ZANIMANJE='"+noviPacijent.Zanimanje+"', Mesto='"+noviPacijent.Mesto+"' WHERE (BROJ_KARTONA="+postojeciPacijent.BrojKartona+")";

SqlCommand UpdateKomanda = new SqlCommand(komanda,sqlConnection1);

UpdateKomanda.ExecuteNonQuery();

AppPozivaSpisakPacijenata.IzmeniPodatkeOPacijentu(noviPacijent, postojeciPacijent);

return 0;

}

public Pacijent IzaberiPacijenta(int brojKartona)

{

string SQL = "";

SQL=@"SELECT * FROM PACIJENT WHERE BROJ_KARTONA ="+brojKartona+"";

SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(SQL, sqlConnection1);

DataSet dsPacijentIzm = new DataSet();

sqlDataAdapter1.Fill(dsPacijentIzm,"PACIJENT");

SpisakPacijenata noviSpisak = new SpisakPacijenata();

foreach (DataRow dr in dsPacijentIzm.Tables["PACIJENT"].Rows)

{

if (Convert.ToInt32(dr["BROJ_KARTONA"].ToString())==brojKartona)

{

paci.BrojKartona=Convert.ToInt32(dr["BROJ_KARTONA"].ToString());

paci.ImePacijenta=dr["IME_PACIJENTA"].ToString();

paci.PrezimePacijenta=dr["PREZIME_PACIJENTA"].ToString();

paci.AdresaPacijenta=dr["ADRESA_PACIJENTA"].ToString();

paci.Mesto=dr["Mesto"].ToString();

paci.DatumRodjenja=Convert.ToDateTime(dr["DATUM_RODJENJA"].ToString());

paci.Zanimanje=dr["ZANIMANJE"].ToString();

paci.TelefonPacijenta=dr["TELEFON_PACIJENTA"].ToString();

return(paci);

break;

}

AppPozivaSpisakPacijenata.DodajPodatkeOPacijentu(paci);

}

bool ima = false;

Pacijent novi = new Pacijent();

foreach(Pacijent pac in AppPozivaSpisakPacijenata.GetSadrzi())

{

if(pac.BrojKartona==brojKartona)

{

ima = true;

novi=pac;

break;

}

else

ima = false;

}

if(ima)

return novi;

else

return null;

}

public Pacijent IzaberiPacPoPrezimenuIImenu(string prezime, string ime)

{

string SQL = "";

SQL=@"SELECT * FROM PACIJENT WHERE PREZIME_PACIJENTA ='"+prezime+"' AND IME_PACIJENTA='"+ime+"'";

SqlDataAdapter sqlDataAdapter1 = new SqlDataAdapter(SQL, sqlConnection1);

DataSet dsPacijentIzm = new DataSet();

sqlDataAdapter1.Fill(dsPacijentIzm,"PACIJENT");

foreach (DataRow dr in dsPacijentIzm.Tables["PACIJENT"].Rows)

{

if (dr["PREZIME_PACIJENTA"].ToString()==prezime)

if (dr["IME_PACIJENTA"].ToString()==ime)

{

paci.BrojKartona=Convert.ToInt32(dr["BROJ_KARTONA"].ToString());

paci.ImePacijenta=dr["IME_PACIJENTA"].ToString();

paci.PrezimePacijenta=dr["PREZIME_PACIJENTA"].ToString();

paci.AdresaPacijenta=dr["ADRESA_PACIJENTA"].ToString();

paci.Mesto=dr["Mesto"].ToString();

paci.DatumRodjenja=Convert.ToDateTime(dr["DATUM_RODJENJA"].ToString());

paci.Zanimanje=dr["ZANIMANJE"].ToString();

paci.TelefonPacijenta=dr["TELEFON_PACIJENTA"].ToString();

return(paci);

break;

}

AppPozivaSpisakPacijenata.DodajPodatkeOPacijentu(paci);

}

bool ima = false;

Pacijent novi = new Pacijent();

foreach(Pacijent pac in AppPozivaSpisakPacijenata.GetSadrzi())

{

if(pac.PrezimePacijenta==prezime)

if(pac.ImePacijenta==ime)

{

ima = true;

novi=pac;

break;

}

else

ima = false;

}

if(ima)

return novi;

else

return null;

}

public SpisakPacijenata DajSvePacijente()

{

string SQL = "";

SQL=@"SELECT * FROMPACIJENT";

SqlDataAdapter sqlDataAdapter3 = new SqlDataAdapter(SQL, sqlConnection1);

DataSet dsDajSvePac = new DataSet();

sqlDataAdapter3.Fill(dsDajSvePac,"PACIJENT");

SpisakPacijenata noviSpisak = new SpisakPacijenata();

foreach (DataRow dr in dsDajSvePac.Tables["PACIJENT"].Rows)

{

Pacijent paci = new Pacijent();

paci.BrojKartona=Convert.ToInt32(dr["BROJ_KARTONA"].ToString());

paci.ImePacijenta=dr["IME_PACIJENTA"].ToString();

paci.PrezimePacijenta=dr["PREZIME_PACIJENTA"].ToString();

paci.AdresaPacijenta=dr["ADRESA_PACIJENTA"].ToString();

paci.DatumRodjenja=Convert.ToDateTime(dr["DATUM_RODJENJA"].ToString());

paci.Zanimanje=dr["ZANIMANJE"].ToString();

paci.TelefonPacijenta=dr["TELEFON_PACIJENTA"].ToString();

paci.Mesto=dr["Mesto"].ToString();

noviSpisak.DodajPodatkeOPacijentu(paci);

}

return noviSpisak;

}

public SpisakPacijenata AppPozivaSpisakPacijenata = new SpisakPacijenata();

}

Metode ove klase se pozivaju na formi sa podacima o pacijentima npr. u okviru procedure koja se izvrava klikom na dugme Potvrdi:

private void btnPotvrdi_Click(object sender, System.EventArgs e)

{

//snimi podatke i izbaci msgbox

if (akcija=="unos")

{

try

{

if(txtBrKart.Text != "")

{

Pacijent paci = new Pacijent();

paci.BrojKartona = broj1;

if(app.AppPozivaSpisakPacijenata.PacijentPostoji(broj1))

MessageBox.Show("Pacijent sa datim brojem kartona vec postoji","ID postoji", MessageBoxButtons.OK,MessageBoxIcon.Error);

else

{

paci.ImePacijenta=txtIme.Text;

paci.PrezimePacijenta=txtPrezime.Text;

paci.AdresaPacijenta=txtAdresa.Text;

paci.Zanimanje=txtZanimanje.Text;

paci.TelefonPacijenta=txtTelefon.Text;

paci.Mesto=txtMesto.Text;

paci.DatumRodjenja=dtpDatRodj.Value;

app.DodajPodatkeOPacijentu(paci);

}

}

else

{

MessageBox.Show("Morate upisati broj kartona","Greska - Prazno polje");

txtBrKart.Focus();

}

}

catch(Exception ex)

{

MessageBox.Show(ex.Message, "Greska!!!");

}

MessageBox.Show("Klikom na dugme Anamneza unesite anamnezu za pacijenta", "info",MessageBoxButtons.OK,MessageBoxIcon.Information);

grbPodaci.Enabled=false;

btnIzmena.Enabled=true;

}

else if (akcija=="izmena")

{grbPodaci.Enabled=true;

string brk=txtBrKart.Text;

int br=Convert.ToInt32(brk);

Pacijent stari = app.IzaberiPacijenta(br);

Pacijent novi = new Pacijent();

novi.BrojKartona=stari.BrojKartona;

novi.ImePacijenta=txtIme.Text;

novi.PrezimePacijenta=txtPrezime.Text;

novi.AdresaPacijenta=txtAdresa.Text;

novi.Mesto=txtMesto.Text;

novi.Zanimanje=txtZanimanje.Text;

novi.TelefonPacijenta=txtTelefon.Text;

novi.DatumRodjenja=Convert.ToDateTime(dtpDatRodj.Value.ToShortDateString());

app.IzmeniPodatkeOPacijentu(novi,stari);

MessageBox.Show("Podaci su uspesno izmenjeni","Info",MessageBoxButtons.OK,MessageBoxIcon.Information);

this.Close();

this.Dispose();

}

Takoe se na nekim mestima u aplikaciji koriste pomone metode koje se nalaze u okviru klasa nego su u okviru neke forme napisane i na potrebnom mestu upotrebljene. Kao na primer metoda VratiBrojPregleda koja vraa ukupan broj pregleda za odreenog pacijenta prema njegovom broju kartona glasi ovako:

public int VratiBrojPregleda(object sender, System.EventArgs e)

{

vratibrpr=0;

brk=broj1;

Pacijent p = new Pacijent();

SqlConnection con = new SqlConnection();

string ConnString = "";

ConnString = @"workstation id=.;packet size=4096;integrated security=SSPI;data source=.;persist security info=True;initial catalog=DIPLOMSKA";

con.ConnectionString=ConnString;

string upit = @"SELECT ID_PREGLEDA,BROJ_KARTONA FROM PREGLED WHERE BROJ_KARTONA = "+brk+"";

SqlDataAdapter da = new SqlDataAdapter (upit,con);

DataSet ds = new DataSet();

con.Open();

da.Fill(ds,"PREGLED");

foreach (DataRow dr in ds.Tables["PREGLED"].Rows)

{

if (Convert.ToInt32(dr["BROJ_KARTONA"].ToString())==brk)

vratibrpr++;

}

return vratibrpr;

}

a poziva se ovdeprivate void formUnos_Load(object sender, System.EventArgs e)

{

broj=parent.broj;

if (broj!="novi")

{

grbPodaci.Enabled=false;

btnIzmena.Enabled=true;

btnPotvrdi.Enabled=false;

btnOdustani.Enabled=false;

txtBrKart.Text=parent.broj;

broj = txtBrKart.Text;

broj1=Convert.ToInt32(broj);

Pacijent vrati=app.IzaberiPacijenta(broj1);

txtIme.Text=vrati.ImePacijenta;

txtPrezime.Text=vrati.PrezimePacijenta;

dtpDatRodj.Value=vrati.DatumRodjenja;

txtAdresa.Text=vrati.AdresaPacijenta;

txtZanimanje.Text=vrati.Zanimanje;

txtMesto.Text=vrati.Mesto;

txtTelefon.Text=vrati.TelefonPacijenta;

br = VratiBrojPregleda(sender,e);

txtBrPregleda.Text=br.ToString();

vratibrpr=br;

}

else

{ btnIzmena.Enabled=false;

broj1=VratiMaxBRK(sender,e);

broj=broj1.ToString();

pom = broj1+1;

txtBrKart.Text=pom.ToString();

broj1=pom;

vratibrpr=0;

txtBrPregleda.Text="0";

br=0;

akcija="unos";

}

pomo=br;

}

8. ZakljuakRealizacija ovog projekta sastojala se iz logikog projektovanja i implementacije modula Informacioni sistem privatne ginekoloke ordinacije. Logiko projektovanje je izvedeno u alatu Power Designer 10.0.0.1077. Korieni UML dijagrami su: dijagram sluajeva korienja, dijagram klasa, dijagram saradnje i dijagram sekvenci za pojedine delove pomatranog sistema. Implementacija je realizovana u Microsoft Visual Studio .NET okruenju. Dokumentacija je uraena u Microsoft Word-u 2003. Help fajl je uraen u Help and Manual 3.0.U posmatranoj privatnoj ginekolokoj ordinaciji kao i u veini zdravstvenih ustanova jedan od najveih problema je nepostojanje informacionog sistema koji bi pokrio njihove delatnosti kao i nedovoljna obuenost strunog osoblja za rad na raunaru. Zbog napretka informatikih tehnologija, neizbeno je okrenuti se uvoenju modernih sistema, koji e poveati produktivnost rada kroz automatizovan nain obrade podataka.

Uvoenje informacionog sistema bi znatno ubrzalo i olakalo manipulaciju dokumentima, dovelo bi do bolje organizacije rada u ordinaciji, a samim tim i do poboljanja radne atmosfere kao i do poboljanja same nege bolesnika.

9. Literatura[1] Ivana Stanojevi, Duan Surla - Uvod u objedinjeni jezik modeliranja, Novi Sad, 1999

[2]Doc. Dr Biljana Radulovi, Ljubica Eremi, Zoltan Kazi - Odabrana poglavlja projektovanja informacionih sistema, Zrenjanin, 2001

[3] Mladenovi Dragomir, Zorica Bogdanovi, Aleksandra Mihailovi, Ginekologija i akuerstvo sa negom,Zavod za udbenike i nstavna sredstva, Beograd, 1996.10. PrilogU prilogu je dostavljen cd sa potrebnim projektnim fajlovima (oom, cdm, pdm) u folderu Project, bazom podataka u folderu Data, dokumentacijom u folderu Doc, instalacionom verzijom softvera u folderu Install i na kraju aplikacijom u folderu Source sa podfolderima Aplikacija i Klase.PAGE - 31 -Jul 2006. Zrenjanin