== Верзија 6 == E-R Дијаграм [[Image(ERmodel_v6.jpg, 100%, center)]] === == Податочни побарувања === Ентитети * **Covek** - ентитет кој ги има податоците потребни да се чуваат за секој поединец (корисник). Од овој ентитет произлегуваат уште 2 други.\\ * ''Кандидат клучеви:'' ''**__covek_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Covek''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:''\\ * ime - од тип varchar (задолжителен) * prezime - од тип varchar (задолжителен) * EMBG - од тип char (задолжителен) * e-mail - од тип varchar (задолжителен) * password - од тип varchar (задолжителен) * telefonski_br - од тип varchar (опционален)\\ * **Pacient** - произлегува од Човек.\\ * ''Кандидат клучеви:'' ''**__covek_pacient_id__**'', наследен нумерички идентификатор од Covek (covek_id), за секоја инстанца од ''Pacient''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:''\\ * pacient_id - од тип integer (задолжителен)\\ * **Doktor** - ентитет кој произлегува од Човек.\\ * ''Кандидат клучеви:'' ''**__doktor_id__**'', наследен нумерички идентификатор од Covek (covek_id), кој го имаат сите доктори за секоја инстанца од ''Doktor''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:''\\ * br_licenca - од тип integer (задолжителен) * opis - од тип varchar (задолжителен)\\ * **Specijalnost** - ги чува сите специјалности на докторите (специјалисти). * ''Кандидат клучеви:'' ''**__specijalnost_id__**'', вештачки нумерички идентификатор кој го имаат специјалностите за секоја инстанца од ''Specijalnost''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:''\\ * naziv - од тип varchar (задолжителен)\\ * **Bolnica** - ентитет во кој се чува листа на сите болници.\\ * ''Кандидат клучеви:'' ''**__bolnica_id__**'', вештачки нумерички идентификатор кој го имаат сите болници за секоја инстанца од ''Bolnica''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * naziv - од тип varchar (задолжителен) * grad - од тип varchar (задолжителен) * adresa - атрибут со повеќе вредности (ulica - од тип varchar и broj - од тип integer) (задолжителен) * bolnica_telefonski_broevi - од тип varchar (задолжителен), атрибут со повеќе вредности * smetka_bolnica - од тип varchar (задолжителен)\\ * **Oddel** - ентитет во кој се чува листа на сите оддели во болниците. Овој е слаб ентитет и е во зависна релација со доктор. * ''Кандидат клучеви:'' ''**__oddel_id__**'', вештачки нумерички идентификатор кој го имаат сите оддели во болниците за секоја инстанца од ''Oddel''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * naziv - од тип varchar (задолжителен)\\ * **Pregled** - чува ИД и време за секој извршен преглед. * ''Кандидат клучеви:'' ''**__pregled_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Pregled''. Претставува PRIMARY_KEY (задолжителен).\\ * ''Атрибути:'' * vreme - од тип timestamp (задолжителен)\\ * **Upat** - потребен за да може пациентот да закаже термин кај специјалист. * ''Кандидат клучеви:'' ''**__upat_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Upat''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * dijagnoza - од тип varchar (задолжителен)\\ * **Termin** - листа на достапни термини за закажување. Претставува слаб ентитет и е во зависна врска со доктор. * ''Кандидат клучеви:'' ''**__termin_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Termin''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * vreme - од тип timestamp (задолжителен)\\ * **Transakcija** - чува листа на извршени трансакции. * ''Кандидат клучеви:'' ''**__tran_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Transakcija''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * suma - од тип integer (задолжителен) * smetka_bolica - од тип varchar (задолжителен)\\ * **Rezervacija** - потребен за да може пациентот да закаже термин кај специјалист. * ''Кандидат клучеви:'' ''**__rezervacija_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Rezervacija''. Претставува PRIMARY_KEY (задолжителен).\\ * **Recepta** - потребен за да може да се препишат лекови на пациентот * ''Кандидат клучеви:'' ''**__recepta_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Recepta''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * datum_izdavanje - од тип timestamp (задолжителен) * datum_vaznost - од тип timestamp (задолжителен) * datum_kupuvanje -од тип timestamp \\ * **Lekovi** - потребени за да може да се даде соодветната терапија на пациентот * ''Кандидат клучеви:'' ''**__lek_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Lekovi''. Претставува PRIMARY_KEY (задолжителен). * ''Атрибути:'' * lek_ime - од тип varchar (задолжителен) * genericko_ime - од тип varchar (задолжителен)\\ === Релации * **pravi** - Секој доктор може да прави преглед. Еден доктор може да прави повеќе прегеди, а еден преглед може да биде направен/извршен од еден доктор. * **dobiva** - Пациент добива упат. Еден пациент може да добие повеќе упати, а еден упат мора да биде на некој пациент. Тотално учество од страната на упат. * **odi_na** - Пациент оди на преглед. Еден пациент може да оди на еден или повеќе прегледи, на еден преглед оди еден пациент во одредено време. * **raboti_vo** - Доктор работи во оддел. Од двете страни има тотално учество. Тоа значи дека во еден оддел мора да работи барем еден доктор, а еден доктор мора да работи во само еден оддел. * **objavuva** - Слаба релација помеѓу термин и доктор. Еден термин мора да е објавен од точно еден доктор и еден доктор може да објави повеќе термини. Тотално учество од страната на термин. * **go_ima_vo** - Тотално учество од страната на оддел. Еден оддел мора да биде во една болница, во една болница може да има еден или повеќе оддели. * **izdaden_za** - Упатот е издаден/наменет за во точно еден оддел, за во еден оддел можат да бидат издадени повеќе упати. Тотално учество од страната на упат. * **se_dobiva** - Од извршен преглед може да се добијат повеќе упати, а еден упат може да биде напишан/издаден врз основа на еден извршен преглед. * **se_potvrduva_so** - Со избирање на даден термин мора да се направи една резервација, а резервацја може да се направи со избирање на еден термин. Тотално учество од страната на резервација. * **pravi_verifikacija_so** - Резервацијата се потврдува со трансакција. Со една трансакција може да се потврди една резервација и една резервација може да биде потврдена со една трансакција. * **specijalizira** - Еден доктор може да специјализира во една специјалност, во една специјалност може да специјализираат повеќе доктори. * **nameneta_za** - Една специјалност е наменета за во повеќе оддели, за во еден оддел е наменета една специјалност. * **rezerviran** - Еден упат е резервиран за една резервација, за една резервација има еден упат. * **se_prepisuva_od** - За време на еден преглед се препишуваат една или повеќе рецепти за лекови. * **prepisani_na** - Се препишуваат рецепти за еден лек. * **prepisuva** - Еден доктор може да препише една или повеќе рецепти. * **prepisana_za** - За еден пациент се препишани една или повеќе рецепти. == Историјат * **[wiki:ERDiagram_v01 Верзија 1:]** Иницијална верзија на моделот. Креирани се ентитетите и релациите меѓу истите. * **[wiki:ERDiagram_v02 Верзија 2:]** Измени направени според забелешките од асистентот. Додаден е ентитет специјалност, измена во релацијата помеѓу оддел и болница. Сменета е релацијата така да може секој доктор да прави преглед, а не само матичен. Додадени релации помеѓу специјалист и специјалност и помеѓу оддел и специјалност. Додадена релација помеѓу специјалист и упат, така што и специјалист може да дава упат. (Ticket #1) * **[wiki:ERDiagram_v03 Верзија 3:]** После долги дискусии со членовите од тимот и професорот, одлучивме да направиме повеќе промени. Делот со login, register и permisii е отстранет. Дополнително, со членовите од тимот направивме промена така да нема специјализација на Доктор (нема матичен и специјалист како претходно). Има промени во имињата на некои од релациите кои претходно беа несоодветни, како и отстранивме непотребни атрибути кај некои од ентитетите (воглавно имаше атрибути, а ентитетите веќе се во релација меѓусебно). * **[wiki:ERDiagram_v04 Верзија 4:]** Промени во однос на Ticket #2. * **[wiki:ERDiagram_v05 Верзија 5:]** Промени поради недостиг на табели. * **[wiki:ERModel Верзија 6:]** Мали промени кај лекови и рецепта во однос на претходната верзија. ==