| 2 | |
| 3 | == E-R Дијаграм |
| 4 | |
| 5 | |
| 6 | == Податочни побарувања |
| 7 | |
| 8 | === Ентитети |
| 9 | |
| 10 | * **Covek** - ентитет кој ги има податоците потребни да се чуваат за секој поединец (корисник). Од овој ентитет произлегуваат уште 2 други.\\ |
| 11 | * ''Кандидат клучеви:'' ''**__covek_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Covek''. Претставува PRIMARY_KEY (задолжителен). |
| 12 | * ''Атрибути:''\\ |
| 13 | * ime - од тип String (задолжителен) |
| 14 | * prezime - од тип String (задолжителен) |
| 15 | * EMBG - од тип int/long int (задолжителен) |
| 16 | * e-mail - од тип String (задолжителен) |
| 17 | * telefoni - од тип int/long int (опционален)\\ |
| 18 | |
| 19 | * **Pacient** - произлегува од Човек.\\ |
| 20 | * ''Кандидат клучеви:'' ''**__pacient_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Pacient''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 21 | |
| 22 | * **Doktor** - ентитет кој произлегува од Човек. Овој ентитет има 2 субкласи.\\ |
| 23 | * ''Кандидат клучеви:'' ''**__br_licenca__**'', нумерички идентификатор кој го имаат сите доктори за секоја инстанца од ''Doktor''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 24 | |
| 25 | * **Maticen** - произлегува од Доктор, клучот се наследува од доктор (број на лиценца).\\ |
| 26 | |
| 27 | * **Specijalist** - произлегува од Доктор, клучот се наследува од доктор (број на лиценца).\\ |
| 28 | |
| 29 | * **Specijalnost** - ги чува сите специјалности на докторите (специјалисти). |
| 30 | * ''Кандидат клучеви:'' ''**__specijalnost_id__**'', вештачки нумерички идентификатор кој го имаат специјалностите за секоја инстанца од ''Specijalnost''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 31 | * ''Атрибути:''\\ |
| 32 | * naziv_spec - од тип String (задолжителен)\\ |
| 33 | |
| 34 | * **Bolnica** - ентитет во кој се чува листа на сите болници.\\ |
| 35 | * ''Кандидат клучеви:'' ''**__bolnica_id__**'', вештачки нумерички идентификатор кој го имаат сите болници за секоја инстанца од ''Bolnica''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 36 | * ''Атрибути:'' |
| 37 | * naziv - од тип String (задолжителен) |
| 38 | * grad - од тип String (задолжителен) |
| 39 | * adresa - од тип String и е атрибут со повеќе вредности (ulica - од тип String и broj - од тип int) (задолжителен)\\ |
| 40 | |
| 41 | * **Oddel** - ентитет во кој се чува листа на сите оддели во болниците. Овој е слаб ентитет и е во зависна релација со доктор. |
| 42 | * ''Кандидат клучеви:'' ''**__oddel_id__**'', вештачки нумерички идентификатор кој го имаат сите оддели во болниците за секоја инстанца од ''Oddel''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 43 | * ''Атрибути:'' |
| 44 | * naziv - од тип String (задолжителен)\\ |
| 45 | |
| 46 | * **Pregled** - чува ИД за секој извршен преглед. |
| 47 | * ''Кандидат клучеви:'' ''**__pregled_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Pregled''. Претставува PRIMARY_KEY (задолжителен).\\ |
| 48 | |
| 49 | * **Upat** - потребен за да може пациентот да закаже термин кај специјалист. |
| 50 | * ''Кандидат клучеви:'' ''**__upat_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Upat''. Претставува PRIMARY_KEY (задолжителен). |
| 51 | * ''Атрибути:'' |
| 52 | * naziv_oddel - од тип String (задолжителен)\\ |
| 53 | |
| 54 | * **Termin** - листа на достапни термини за закажување. Претставува слаб ентитет и е во зависна врска со специјалист. |
| 55 | * ''Кандидат клучеви:'' ''**__termin_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Termin''. Претставува PRIMARY_KEY (задолжителен). |
| 56 | * ''Атрибути:'' |
| 57 | * datum - од тип date (задолжителен) |
| 58 | * cas - од тип dateTime (задолжителен) |
| 59 | * doktor - од тип String (задолжителен)\\ |
| 60 | |
| 61 | * **Transakcija** - чува листа на извршени трансакции. |
| 62 | * ''Кандидат клучеви:'' ''**__tran_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Transakcija''. Претставува PRIMARY_KEY (задолжителен). |
| 63 | * ''Атрибути:'' |
| 64 | * suma - од тип int/long int (задолжителен) |
| 65 | * smetka - од тип int/long int (задолжителен)\\ |
| 66 | |
| 67 | * **Rezervacija** - потребен за да може пациентот да закаже термин кај специјалист. |
| 68 | * ''Кандидат клучеви:'' ''**__rezervacija_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Rezervacija''. Претставува PRIMARY_KEY (задолжителен). |
| 69 | * ''Атрибути:'' |
| 70 | * termin - од тип date (задолжителен)\\ |
| 71 | |
| 72 | * **Login** - ентитет кој чува листа со потребни креденцијали за најава. |
| 73 | * ''Кандидат клучеви:'' ''**__login_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Login''. Претставува PRIMARY_KEY (задолжителен). |
| 74 | * ''Атрибути:'' |
| 75 | * password - од тип String (задолжителен) |
| 76 | * login_e-mail - од тип String (задолжителен) |
| 77 | * login_uloga_id - од тип String (задолжителен)\\ |
| 78 | |
| 79 | * **Ulogi** - ентитет кој ги содржи улогите со кои може да се најави еден корисник. |
| 80 | * ''Кандидат клучеви:'' ''**__uloga_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Ulogi''. Претставува PRIMARY_KEY (задолжителен). |
| 81 | * ''Атрибути:'' |
| 82 | * uloga-ime - од тип String (задолжителен) |
| 83 | * uloga_opis - од тип String (задолжителен)\\ |
| 84 | |
| 85 | * **Permisii** - чува листа на извршени трансакции. |
| 86 | * ''Кандидат клучеви:'' ''**__per_id__**'', вештачки нумерички идентификатор за секоја инстанца од ''Permisii''. Претставува PRIMARY_KEY (задолжителен). |
| 87 | * ''Атрибути:'' |
| 88 | * per_ime - од тип String (задолжителен) |
| 89 | * per_uloga_id - од тип int/long int (задолжителен) |
| 90 | |
| 91 | === Релации |
| 92 | |
| 93 | * **ima** - Човек има улоги и пермисии, во зависност од тоа дали ќе биде најавен како доктор или како пациент. Има login, во смисла дека се најавува на апликацијата. |
| 94 | |
| 95 | * **pravi** - Секој доктор може да прави преглед. Кардиналноста е 1 : N, што значи дека еден доктор може да прави повеќе прегеди, а еден преглед може да биде направен/извршен од еден доктор. |
| 96 | |
| 97 | * **dobiva** - Пациент добива упат. Кардиналноста е 1 : N, што значи дека еден пациент може да добие повеќе упати и еден упат може да биде даден на еден пациент. |
| 98 | |
| 99 | * **raboti_vo** - Доктор работи во оддел. Кардиналноста е N : 1, од двете страни има тотално учество. Тоа значи дека во еден оддел мора да работи барем еден доктор, а еден доктор мора да работи во само еден оддел. |
| 100 | |
| 101 | * **za_kaj** - Слаба релација помеѓу термин и специјалист. Кардиналност 1 : 1. Еден термин мора да е за кај еден специјалист и за кај еден специјалист има еден термин. |
| 102 | |
| 103 | * **go_ima_vo** - Тотално учество од страната на болница. Кардиналност N : 1. Еден оддел мора да биде точно во една болница, во една болница може да има еден или повеќе оддели. |
| 104 | |
| 105 | * **za_vo** - Упатот е за во некој оддел. Еден упат е наменет за во еден оддел, во еден оддел може да одат пациенти со еден упат. Кардиналност 1 : 1. |
| 106 | |
| 107 | * **se_dobiva** - Од извршен преглед може да се добијат повеќе упати, а еден упат може да биде напишан/издаден врз основа на еден извршен преглед. Кардиналност 1 : N. |
| 108 | |
| 109 | * **pravi** - Со избирање на даден термин мора да се направи една резервација, а резервацја може да се направи со избирање на еден термин. Кардиналност 1 : 1. Тотално учество од страната на резервација. |
| 110 | |
| 111 | * **moze_da_dava** - Специјалист може да дава упат. Кардиналноста е 1 : 1, па според тоа еден упат може да биде издаден од еден специјалист и еден специјалист може да даде еден упат. |
| 112 | |
| 113 | * **specijalizira** - Еден специјалист мора да специјализира во точно една специјалност, во една специјалност може да специјализираат повеќе специјалисти. Кардиналност 1 : N. Тотално учество од страната на специјалност. |
| 114 | |
| 115 | * **vo** - Еден оддел мора да биде во точно една болница, во една болница мора да има само еден оддел. Кардиналност 1 : 1. Тотално учество од двете страни. |
| 116 | |
| 117 | * **se_prebaruva** - Според еден упат може да се пребарува термин, еден термин може да биде пребаруван според дијагнозата внесена во упатот. Кардиналност 1 : 1. |
| 118 | |
| 119 | * **potvrduva_so** - Резервацијата се потврдува со трансакција. Со една трансакција може да се потврди една резервација и една резервација може да биде потврдена со една трансакција. Кардиналност 1 : 1. |