Index: DB/kreiranje.sql
===================================================================
--- DB/kreiranje.sql	(revision 5e4f0d7ed900fb7f557c957c4da92600bdd9bde0)
+++ DB/kreiranje.sql	(revision 5e4f0d7ed900fb7f557c957c4da92600bdd9bde0)
@@ -0,0 +1,222 @@
+
+drop schema if exists project cascade;
+
+create schema project;
+
+drop table if exists bolnica cascade;
+drop table if exists bolnica_telefonski_broevi cascade;
+drop table if exists covek cascade;
+drop table if exists doktor cascade;
+drop table if exists lekovi cascade;
+drop table if exists oddel cascade;
+drop table if exists pacient cascade;
+drop table if exists pregled cascade;
+drop table if exists recepta cascade;
+drop table if exists rezervacija cascade;
+drop table if exists specijalnost cascade;
+drop table if exists telefonski_broevi cascade;
+drop table if exists termin cascade;
+drop table if exists transakcija cascade;
+drop table if exists upat cascade;
+
+-- Covek (covek_id, e-mail, password, ime, prezime, EMBG)
+
+create table covek(
+	covek_id serial,
+	email varchar (50) not null unique,
+	pass varchar (50) not null,
+	ime varchar (50) not null,
+	prezime varchar (50) not null,
+	embg char (13) not null unique,
+	constraint pk_covek_id primary key (covek_id),
+	constraint ck_pass check (length (pass) >= 8)
+);
+
+
+
+-- Telefonski_br (covek_id*(Covek), telefonski_br)
+
+create table telefonski_broevi(
+	covek_broj_id integer,
+	telefonski_broj varchar (30),
+	constraint pk_telefonski_broj primary key (covek_broj_id, telefonski_broj),
+	constraint fk_telefonski_br_covek foreign key (covek_broj_id) references covek(covek_id)
+);
+
+
+--Specijalnost (spec_id, naziv)
+
+create table specijalnost(
+	spec_id serial,
+	naziv varchar (100) not null,
+	constraint pk_spec_id primary key (spec_id)
+);
+
+
+
+-- Bolnica (bolnica_id, naziv, smetka_bolnica, grad, broj, ulica)
+
+create table bolnica(
+	bolnica_id serial,
+	naziv varchar (100) not null,
+	grad varchar (20) not null,
+	broj integer not null,
+	ulica varchar (100) not null,
+	smetka_bolnica varchar (100) not null unique,
+	constraint pk_bolnica_id primary key (bolnica_id)
+);
+
+
+
+-- Bolnica_telefonski_br (bolnica_id*(Bolnica), telefonski_br)
+
+create table bolnica_telefonski_broevi(
+	bolnica_id integer,
+	telefonski_br_bolnica varchar (30),
+	constraint pk_telefonski_broj_bolnica primary key (bolnica_id, telefonski_br_bolnica),
+	constraint fk_telefonski_br_bolnica foreign key (bolnica_id) references bolnica(bolnica_id)
+);
+
+
+
+--Oddel (bolnica_id*(Bolnica), oddel_id, naziv, spec_id*(Specijalnost))
+
+create table oddel(
+	bolnica_id integer,
+	oddel_id serial,
+	naziv varchar (100) not null,
+	spec_id integer,
+	constraint pk_oddel_id primary key (bolnica_id, oddel_id),
+	constraint fk_oddel_id foreign key (bolnica_id) references bolnica(bolnica_id),
+	constraint fk_specijalnot_vo_oddel foreign key (spec_id) references specijalnost(spec_id)
+);
+
+
+
+-- Doktor (doktor_id*(Covek), br_licenca, opis, spec_id*(Specijalnost), (bolnica_id, oddel_id)*(Oddel))
+
+create table Doktor(
+	doktor_id integer,
+	br_licenca integer not null,
+	opis varchar (50),
+	spec_id integer,
+	oddel_id integer not null,
+	bolnica_id integer,
+	constraint pk_doktor_id primary key (doktor_id),
+	constraint fk_covek_id foreign key (doktor_id) references covek(covek_id),
+	constraint fk_doktor_specijalnost foreign key (spec_id) references specijalnost(spec_id),
+	constraint fk_doktor_raboti_oddel foreign key (bolnica_id, oddel_id) references oddel(bolnica_id, oddel_id)
+);
+
+
+
+-- Termin (doktor_id*(Doktor), termin_id, vreme)
+
+create table Termin(
+	termin_id serial,
+	doktor_id integer,
+	vreme timestamp not null,
+	constraint pk_termin primary key (doktor_id, termin_id),
+	constraint fk_doktor_id foreign key (doktor_id) references doktor(doktor_id)
+);
+
+
+
+-- Pacient (covek_pacient_id*(Covek), pacient_id)
+
+create table pacient(
+	covek_pacient_id integer,
+	pacient_id integer not null,
+	constraint pk_pacient_covek_id primary key (covek_pacient_id),
+	constraint fk_pacient_covek_id foreign key (covek_pacient_id) references covek(covek_id)
+);
+
+
+
+-- Pregled (pregled_id, vreme, doktor_id*(Doktor), covek_pacient_id*(Pacient))
+
+create table pregled (
+	pregled_id serial,
+	vreme timestamp not null,
+	doktor_id integer,
+	covek_pacient_id integer not null,
+	constraint pk_pregled_id primary key (pregled_id),
+	constraint fk_doktor_pregleduva foreign key (doktor_id) references doktor(doktor_id),
+	constraint fk_odi_na_prelged foreign key (covek_pacient_id) references pacient(covek_pacient_id)
+);
+
+
+
+-- Upat (upat_id, dijagnoza, covek_pacient_id*(Pacient), pregled_id*(Pregled), oddel_id*(Oddel))
+
+create table upat (
+	upat_id serial,
+	dijagnoza varchar (150) not null,
+	covek_pacient_id integer not null,
+	pregled_id integer,
+	bolnica_id integer not null,
+	oddel_id integer not null,
+	constraint pk_upat_id primary key (upat_id),
+	constraint fk_pacinet_dobiva_upat foreign key (covek_pacient_id) references pacient(covek_pacient_id),
+	constraint fk_se_dobiva_upat_od_prelged foreign key (pregled_id) references pregled(pregled_id),
+	constraint fk_izdaden_za_oddel foreign key (bolnica_id, oddel_id) references oddel(bolnica_id, oddel_id)
+);
+
+
+
+-- Rezervacija (rezervacija_id, upat_id*(Upat), termin_id*(Termin))
+
+create table rezervacija (
+	rezervacija_id serial,
+	upat_id integer,
+	termin_id integer not null,
+	doktor_id integer not null,
+	constraint pk_rezervacija_id primary key (rezervacija_id),
+	constraint fk_upat_rezervacija foreign key (upat_id) references upat(upat_id),
+	constraint fk_rezervacija_vo_termin foreign key (doktor_id, termin_id) references termin(doktor_id, termin_id)
+);
+
+
+
+--Transakcija (tran_id, suma, smetka_bolnica, rezervacija_id*(Rezervacija))
+
+create table transakcija (
+	tran_id serial,
+	suma integer not null,
+	smetka_bolnica varchar (100) not null,
+	rezervacija_id integer,
+	constraint pk_tran_id primary key (tran_id),
+	constraint fk_transakcija_rezervacija foreign key (rezervacija_id) references rezervacija(rezervacija_id)
+);
+
+
+
+-- Lekovi (lek_id, ime_lek, genericko_ime)
+
+create table lekovi (
+	lek_id serial,
+	ime_lek varchar (100) not null,
+	genericko_ime varchar (100) not null,
+	constraint pk_lek_id primary key (lek_id)
+);
+
+
+
+-- Recepta (recepta_id, datum_izdavanje, datum_vaznost, datum_kupuvanje, pregled_id*(Pregled), lek_id*(Lekovi), doktor_id*(Doktor), covek_pacient_id*(Pacient))
+
+create table recepta (
+	recepta_id serial,
+	datum_izdavanje timestamp not null,
+	datum_vaznost timestamp not null,
+	datum_kupuvanje timestamp,
+	pregled_id integer,
+	lek_id integer not null,
+	doktor_id integer not null,
+	covek_pacient_id integer not null,
+	constraint pk_recepta_id primary key (recepta_id),
+	constraint fk_recepta_od_pregled foreign key (pregled_id) references pregled(pregled_id),
+	constraint fk_lek_od_recepta foreign key (lek_id) references lekovi(lek_id),
+	constraint fk_doktor_prepisuva_recepta foreign key (doktor_id) references doktor(doktor_id),
+	constraint fk_recepta_pacient foreign key (covek_pacient_id) references pacient(covek_pacient_id)
+);
+
Index: DB/polnenje.sql
===================================================================
--- DB/polnenje.sql	(revision 5e4f0d7ed900fb7f557c957c4da92600bdd9bde0)
+++ DB/polnenje.sql	(revision 5e4f0d7ed900fb7f557c957c4da92600bdd9bde0)
@@ -0,0 +1,158 @@
+delete from bolnica;
+delete from bolnica_telefonski_broevi;
+delete from covek;
+delete from doktor;
+delete from lekovi;
+delete from oddel;
+delete from pacient;
+delete from pregled;
+delete from recepta;
+delete from rezervacija;
+delete from specijalnost;
+delete from telefonski_broevi;
+delete from termin;
+delete from transakcija;
+delete from upat;
+
+
+
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (1, 'petar.petrov@gmail.com', 'password1', 'Petar', 'Petrov', '1010995495005');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (2, 'marija.aleksovska@gmail.com', 'password2', 'Marija', 'Aleksovska', '0101991490001');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (4, 'stojan.gavrilov@gmail.com', 'password3', 'Stojan', 'Gavrilov', '0301000490111');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (5, 'nikola.nikolovski@gmail.com', 'password4', 'Nikola', 'Nikolovski', '1512999450015');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (6, 'elena.stojanovska@gmail.com', 'password5', 'Elena', 'Stojanovska', '1906987495017');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (7, 'ivan.tasev@gmail.com', 'password6', 'Ivan', 'Tasev', '0301000491300');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (8, 'gligor.petkov@gmail.com', 'password7', 'Gligor', 'Petkov', '0402987891891');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (9, 'igor.milchev@gmail.com', 'password8', 'Igor', 'Milchev', '2009987123321');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (10, 'janko.petkov@gmail.com', 'password9', 'Janko', 'Petkov', '3112002121212');
+insert into covek (covek_id, email, pass, ime, prezime, embg) values (11, 'petar.stoev@gmail.com', 'password10', 'Petar', 'Stoev', '2104003490008');
+                
+
+              
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (1, '070-552-111');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (2, '070-552-222');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (2, '070-552-333');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (4, '070-552-444');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (5, '070-552-555');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (6, '070-552-666');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (7, '070-552-777');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (8, '070-552-888');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (9, '070-552-999');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (10, '070-552-121');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (11, '070-552-122');
+insert into telefonski_broevi (covek_broj_id, telefonski_broj) values (2, '070-552-123');
+										
+
+
+insert into specijalnost (spec_id, naziv) values  (1, 'Otorinolaringologija');
+insert into specijalnost (spec_id, naziv) values  (2, 'Dermatovenerologija');
+insert into specijalnost (spec_id, naziv) values  (3, 'Oftalmologija');
+insert into specijalnost (spec_id, naziv) values  (4, 'Ortopedija');
+insert into specijalnost (spec_id, naziv) values  (5, 'Interna medicina');
+insert into specijalnost (spec_id, naziv) values  (6, 'Kardiologija');
+insert into specijalnost (spec_id, naziv) values  (7, 'Ginekologija');
+insert into specijalnost (spec_id, naziv) values  (8, 'Pedijatrija');
+insert into specijalnost (spec_id, naziv) values  (9, 'Gastroenterohepatologija');
+insert into specijalnost (spec_id, naziv) values (10, 'Semeen lekar');
+										
+		
+
+insert into bolnica (bolnica_id, naziv, grad, broj, ulica, smetka_bolnica) values
+					(1, 'Градска Општа болница „8 Септември"', 'Skopje', 3, 'Bledski Dogovor', '123456789'),
+					(2, 'Ј.З.У Специјална болница по гинекологија и акушерство „Мајка Тереза“', 'Skopje', 17, 'Majka Tereza', '213456789'),
+					(3, 'Универзитетската Клиника за Радиотерапија и Онкологија', 'Skopje', 17, 'Majka Tereza', '312456789'),
+					(4, 'ЈЗУ Универзитетски кардиолошки клинички центар', 'Skopje', 17, 'Majka Tereza', '412356789'),
+					(5, 'Градска Општа болница', 'Skopje', 10, '11 Oktomvri', '512346789');
+					
+	
+				
+insert into bolnica_telefonski_broevi (bolnica_id, telefonski_br_bolnica) values 
+					(1, '02 3087 400'),
+					(1, '02 3072 125'),
+					(2, '02 4323 132'),
+					(2, '02 3087 133'),
+					(3, '02 3087 405'),
+					(3, '02 3087 311'),
+					(4, '02 3087 500'),
+					(5, '02 3087 522');
+					
+
+				
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (1, 100, 'Pedijatrija', 8);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (2, 101, 'Ginekologija', 7);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (3, 102, 'Interna medicina', 5);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (4, 103, 'Kardiologija', 6);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (5, 104, 'Ortopedija', 4);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (5, 105, 'Otorinolaringologija', 1);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (1, 106, 'Dermatovenerologija', 2);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (5, 107, 'Oftalmologija', 3);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (5, 108, 'Gastroenterohepatologija', 9);
+insert into oddel (bolnica_id, oddel_id, naziv, spec_id) values (1, 109, 'Opsta medicina', 10);
+				
+
+
+insert into doktor (doktor_id, br_licenca, opis, spec_id, oddel_id, bolnica_id) values (2, 201, 'Specijalist', 1, 105, 5);
+insert into doktor (doktor_id, br_licenca, opis, spec_id, oddel_id, bolnica_id) values (4, 202, 'Maticen', 10, 109, 1);
+insert into doktor (doktor_id, br_licenca, opis, spec_id, oddel_id, bolnica_id) values (5, 203, 'Specijalist', 2, 106, 1);
+insert into doktor (doktor_id, br_licenca, opis, spec_id, oddel_id, bolnica_id) values (6, 204, 'Specijalist', 6, 103, 4);
+insert into doktor (doktor_id, br_licenca, opis, spec_id, oddel_id, bolnica_id) values (7, 205, 'Specijalist', 4, 104, 5);
+
+
+		 
+insert into Termin (termin_id, doktor_id, vreme) values (301, 2, now() + interval '3 days');
+insert into Termin (termin_id, doktor_id, vreme) values (302, 2, now() + interval '4 days');
+insert into Termin (termin_id, doktor_id, vreme) values (303, 2, now() + interval '3 days');
+insert into Termin (termin_id, doktor_id, vreme) values (304, 6, now() + interval '5 days');
+insert into Termin (termin_id, doktor_id, vreme) values (305, 6, now() + interval '5 days');
+insert into Termin (termin_id, doktor_id, vreme) values (306, 5, now() + interval '6 days');
+insert into Termin (termin_id, doktor_id, vreme) values (307, 5, now() + interval '10 days');
+insert into Termin (termin_id, doktor_id, vreme) values (308, 7, now() + interval '2 days');
+insert into Termin (termin_id, doktor_id, vreme) values (309, 7, now() + interval '8 days');
+insert into Termin (termin_id, doktor_id, vreme) values (310, 7, ('2021-12-28 08:00')::timestamp);
+insert into Termin (termin_id, doktor_id, vreme) values (311, 5, ('2021-12-25 12:00')::timestamp);		
+				
+
+
+insert into pacient (covek_pacient_id, pacient_id) values (1, 1001), (8, 1002), (9, 1003), (10, 1004), (11, 1005);
+
+
+
+insert into pregled (pregled_id, vreme, doktor_id, covek_pacient_id) values  (1, now(), 2, 1), (2, now(), 4, 8), (3, now(), 5, 9), (4, now(), 6, 10), (5, now(), 7, 1);
+					
+				
+
+insert into upat (upat_id, dijagnoza, covek_pacient_id, pregled_id, bolnica_id, oddel_id) values (1, 'Bolki vo gradniot kos', 10, 4, 4, 103);
+insert into upat (upat_id, dijagnoza, covek_pacient_id, pregled_id, bolnica_id, oddel_id) values (2, 'Crvenilo na kozata', 9, 3, 1, 106);
+insert into upat (upat_id, dijagnoza, covek_pacient_id, pregled_id, bolnica_id, oddel_id) values (3, 'Bolki vo kolenoto', 1, 5, 5, 104);
+		
+				
+				
+insert into rezervacija (rezervacija_id, upat_id, termin_id, doktor_id) values  (500, 1, 304, 6), (501, 2, 306, 5), (502, 3, 309, 7);
+					
+
+
+insert into transakcija (tran_id, suma, smetka_bolnica, rezervacija_id) values 
+					(600, 50, '512346789', 502), (601, 20, '123456789', 501), (602, 20, '412356789', 500);
+					
+				
+				
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (800, 'Zantac', 'Ranitidine');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (801, 'Glucophage', 'Metformin');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (802, 'Prandin', 'Repaglinide');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (803, 'Ticlid', 'Ticlopidine');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (804, 'Nitroglycerin', 'Glyceryl trinitrate');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (805, 'Cardura', 'Doxazosin');
+insert into lekovi (lek_id, ime_lek, genericko_ime) values (806, 'Amoksiklav', 'Amoxicillin');
+					
+
+
+insert into recepta (recepta_id, datum_izdavanje, datum_vaznost, datum_kupuvanje, pregled_id, lek_id, doktor_id, covek_pacient_id) values 
+				(900, now(), now()+interval '10 days', now()+interval '1 days', 1, 800, 2, 1),
+				(901, now(), now()+interval '10 days', now()+interval '8 days', 2, 801, 4, 8);
+
+			
+			
+insert into recepta (recepta_id, datum_izdavanje, datum_vaznost, pregled_id, lek_id, doktor_id, covek_pacient_id) values
+				(902, now(), now()+interval '10 days', 3, 806, 5, 9);
+
+
