Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
);
);
);
);
DELIMITER //
#DROP TRIGGER IF EXISTS Verifica_CNP;
CREATE TRIGGER verifica_CNP BEFORE INSERT ON Pacient
FOR EACH ROW BEGIN
IF NEW.Data_n>NOW() then
SET NEW.Data_n=NULL;
ELSE
--
-----------------------------------------------------------------------------------
------
-- Triggger pentru verificarea temperaturii si pulsului (50<puls<120 |
35<temperatura<41.5)
--
-----------------------------------------------------------------------------------
------
#puls:
DELIMITER //
#DROP TRIGGER IF EXISTS Verifica_FisaPacient;
CREATE TRIGGER verifica_FisaPacient BEFORE INSERT ON FisaPacient
FOR EACH ROW BEGIN
ELSE
-- ----------------------
-- User pentru angajat
-- ----------------------
CREATE USER IF NOT EXISTS 'angajat'@'localhost';
-- ----------------------
-- User pentru aadmin
-- ----------------------
CREATE USER IF NOT EXISTS 'admin'@'localhost' ;
GRANT SELECT ON Hospital.* TO 'admin'@'localhost';
GRANT INSERT ON Hospital.* TO 'admin'@'localhost';
GRANT UPDATE ON Hospital.* TO 'admin'@'localhost';
GRANT DELETE ON Hospital.* TO 'admin'@'localhost';
GRANT SHOW VIEW ON Hospital.* TO 'administrator'@'localhost';
GRANT EXECUTE ON PROCEDURE Hospital.schimbareSalariuAngajati TO
'administrator'@'localhost';
GRANT EXECUTE ON PROCEDURE Hospital.Modificare_Pret_medicamente TO
'administrator'@'localhost';
-- ----------------------
-- User pentru client
-- ----------------------
CREATE USER IF NOT EXISTS 'client'@'localhost';
GRANT SELECT ON Hospital.* TO 'client'@'localhost';
GRANT INSERT ON Hospital.* TO 'client'@'localhost';
GRANT UPDATE ON Hospital.* TO 'client'@'localhost';
GRANT DELETE ON Hospital.* TO 'client'@'localhost';
GRANT SHOW VIEW ON Hospital.Vizualizare_CerereLaborator TO 'client'@'localhost';
GRANT EXECUTE ON PROCEDURE Hospital.Creare_Buletin_Analize TO 'client'@'localhost';
-- ----------------------------------------
-- View pentru vizualizarea pacientilor
-- ----------------------------------------
-- ----------------------------------------
-- View pentru vizualizarea consultului
-- ----------------------------------------
CREATE VIEW Vizualizare_Consult AS
SELECT Consult.NrCons,Consult.idPacient,Consult.idSectie,Pacient.Nume AS
NumePacient,Consult.Medic,Consult.Tip_Trimitere,Consult.Tip_Consult,Consult.Data_c,
Consult.Diagnostic,Consult.Decizie FROM Consult
INNER JOIN Pacient ON Pacient.id=Consult.idPacient ORDER BY Consult.Data_c;
-- ----------------------------------------
-- View pentru vizualizarea internarii
-- ----------------------------------------
-- ---------------------------------------------
-- View pentru vizualizarea fiselor pacientilor
-- ---------------------------------------------
-- ----------------------------------------
-- View pentru vizualizarea sectiilor
-- ----------------------------------------
-- ------------------------------------------------
-- View pentru vizualizarea Buletinului de analize
-- ------------------------------------------------
-- ------------------------------------------------
-- View pentru vizualizarea tratamentului
-- ------------------------------------------------
CREATE VIEW Vizualizare_Tratament as
SELECT Tratament.idTratament, Tratament.NrFisa,Pacient.nume as
NumePacient,Tratament.DenumireMedicament, Tratament.DenumireSanitar, Tratament.Cost
FROM Tratament,FisaPacient, Pacient, Consult, Internare
WHERE Pacient.id=Consult.idPacient and Consult.NrCons=Internare.NrCons AND
FisaPacient.NrFisa=Internare.NrFoaie AND Tratament.NrFisa=Fisapacient.NrFisa and
Internare.Data_I=Consult.Data_c;
-- ------------------------------------------------
-- View pentru vizualizarea Produselor
-- ------------------------------------------------
-- ------------------------------------------------
-- View pentru vizualizarea cererii de laborator
-- ------------------------------------------------
-- ------------------------------------------------
-- View pentru vizualizarea fisei de externare
-- ------------------------------------------------
-- ------------------------------------------------
-- View pentru vizualizarea Istoricului pacientilor
-- ------------------------------------------------
---------------------------------------------------------
-- Procedura pentru adaugarea unui pacient nou(client)
---------------------------------------------------------
DELIMITER //
END //
DELIMITER ;
---------------------------------------------------------
-- Procedura pentru adaugarea unui consult nou(asistenta)
----------------------------------------------------------
DELIMITER //
SET @ultimul=NULL;
(@ultimul,@pacient,idSectie,medic,tipTrimitere,tipConsult,NOW(),Diagnostic,Decizie)
;
END //
DELIMITER ;
------------------------------------------------------------------
-- Procedura pentru adaugarea unui pacient in registru(asistenta)
------------------------------------------------------------------
DELIMITER //
CREATE PROCEDURE Adauga_Registru(parafa int)
BEGIN
-----------------------------------------------------------------------------------
--------------------
-- Procedura pentru actualizarea registrului, pentru pacientii care au mai fost
introdusi(asistenta)
-----------------------------------------------------------------------------------
--------------------
DELIMITER //
-----------------------------------------------------------------------------------
-------
-- Procedura pentru cautarea unui pacient in tabela de pacienti(asistenta)
-----------------------------------------------------------------------------------
------
DELIMITER //
SET @Cnpul=NULL;
SELECT @Cnpul:=CNP from Introducere WHERE Introducere.CNP=CNP;
END IF;
END //
DELIMITER ;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unui angajat(angajat)
-----------------------------------------------------------------------------------
------
DELIMITER //
END //
DELIMITER ;
DELIMITER //
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unui nou cont de client(angajat)
-----------------------------------------------------------------------------------
------
DELIMITER //
END //
DELIMITER ;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unui trataemnt nou pacientului(asistenta)
-----------------------------------------------------------------------------------
------
DELIMITER //
-----------------------------------------------------------------------------------
--------------
-- Procedura pentru cererea de medicamente ce urmeaza a-i fi administrate
pacientului(asistenta)
-----------------------------------------------------------------------------------
---------------
DELIMITER //
#DROP Procedure Cerere_medicament;
CREATE PROCEDURE Cerere_medicament(idTratament int, cantitate int)
BEGIN
SELECT @denM:= DenumireMedicament FROM Tratament WHERE
idTratament=Tratament.idTratament;
SELECT @denS:= DenumireSanitar FROM Tratament WHERE
idTratament=Tratament.idTratament;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unei cereri de laborator(cerere pentru o analiza)
(asistenta)
-----------------------------------------------------------------------------------
------
DELIMITER //
#DROP PROCEDURE Creare_Cerere_Laborator;
CREATE PROCEDURE Creare_Cerere_Laborator(nrFisa int, prioritate
enum('urgenta','normala'), tip varchar(45))
BEGIN
SELECT @nrMax:=MAX(nrFisa) FROM FisaPacient;
if(nrFisa>=1 and nrFisa<=@nrMax) then
INSERT INTO CerereLaborator(NrFisa, data_c, prioritate, Tip_Analiza)
VALUES
(nrFisa, NOW(), prioritate, tip);
else SELECT('Numar fisa nevalid!');
end if;
END //
DELIMITER ;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unui Buletin de analize(biolog)
-----------------------------------------------------------------------------------
------
DELIMITER //
CREATE PROCEDURE Creare_Buletin_Analize(numeBiolog varchar(45),Evaluarea_Calitatii
enum('Satisfacatoare','Buna','Rea'),Rezultat varchar(45), Observatii varchar(45),
Pret int)
BEGIN
SET @cod=NULL;
SELECT
@cod:=MAX(cod)
FROM
CerereLaborator;
INSERT INTO
BuletinAnalize(codCerere,numeBiolog,Evaluarea_Calitatii,Rezultat,Observatii,Pret)
VALUES
(@cod,numeBiolog,Evaluarea_Calitatii,Rezultat,Observatii,Pret);
END //
DELIMITER ;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru crearea unei fise de externare(asistenta)
-----------------------------------------------------------------------------------
------
DELIMITER //
#DROP PROCEDURE Creare_Fisa_Externare;
CREATE PROCEDURE Creare_Fisa_Externare(nrFisa int, epicriza varchar(45),recomandari
varchar(45))
BEGIN
if(nrFisa>=1 and nrFisa<=(SELECT MAX(NrFisa) FROM FisaPacient)) then
SELECT @id_pacient:=id FROM Pacient, Consult, Internare, FisaPacient
WHERE (Pacient.id=Consult.idPacient and Consult.NrCons=Internare.NrCons and
Internare.NrFoaie=FisaPacient.NrFisa and NrFisa=nrFisa);
SELECT @idSectie:= idSectie FROM Consult, Pacient WHERE
Consult.idPacient=@id_pacient;
UPDATE Sectie
SET
Nr_paturi=Nr_paturi+1
WHERE Sectie.id=@idSectie;
SELECT @asigurat:=Asigurat FROM Pacient WHERE @id_pacient=Pacient.id;
SELECT @costtotal:=Cost FROM Tratament where nrFisa=Tratament.NrFisa;
SELECT @costanalize:=SUM(Pret) FROM BuletinAnalize, CerereLaborator
WHERE BuletinAnalize.codCerere=CerereLaborator.cod and
CerereLaborator.NrFisa=nrFisa;
if(@costanalize IS NOT NULL) then SET @costtotal=@costtotal+@costanalize;
end if;
if(@asigurat is TRUE) then SET @costtotal:=0;
end if;
INSERT INTO FisaExternare(NrFoaie,id_pacient,Cost_total, data_e,
Epicriza,Recomandari)
values
(nrFisa,@id_pacient,@costtotal, NOW(), epicriza,recomandari);
END //
DELIMITER ;
-----------------------------------------------------------------------------------
-------------------------------------
-- Procedura pentru modificarea in Fisa de pacient a starii
pacientului(temperatura,tensiune,puls,evolutie)(asistenta)
-----------------------------------------------------------------------------------
-------------------------------------
DELIMITER //
CREATE PROCEDURE Modifica_Pacient(nrfisa int,temp float, tens varchar(10), puls
int, evolutie enum('Vindecat','Ameliorat','Stationara'))
BEGIN
SET @exista:=NULL;
END //
DELIMITER ;
-----------------------------------------------------------------------------------
--------------------------
-- Procedura pentru adaugarea pacientului in Istoric(asistenta)
-----------------------------------------------------------------------------------
--------------------------
DELIMITER //
CREATE PROCEDURE Istoric_Pacient(CNP varchar(13))
BEGIN
SET @exista:=NULL;
SET @decizie:=NULL;
SET @ext:=NULL;
SET @medicatie:='';
SET @externare:='';
SELECT @exista:= CNP FROM IstoricPacient WHERE IstoricPacient.CNP=CNP;
end if;
end if;
END //
DELIMITER ;
-----------------------------------------------------------------------------------
--------------------------
-- Procedura pentru modificarea numarului de paturi pe sectie(administrator)
-----------------------------------------------------------------------------------
--------------------------
DELIMITER //
CREATE PROCEDURE Modificare_NrPaturi(id int, nrpaturi int)
BEGIN
SET @exista:=NULL;
SELECT @exista:= id FROM Sectie WHERE Sectie.id=id;
-----------------------------------------------------------------------------------
-------------------------
-- Procedura pentru modificarea preturilor medicamentelor(administrator)
-----------------------------------------------------------------------------------
--------------------------
DELIMITER //
SET @exista:=NULL;
SELECT @exista:= id FROM Produse WHERE Produse.id=id;
END //
DELIMITER ;
DELIMITER //
DELIMITER //
SET @idCl=NULL;
SELECT @idCl:=id from Persoane WHERE (Persoane.nume=pr_numeClient and
Persoane.prenume=pr_prenumeClient);
END IF;
END //
DELIMITER ;
DELIMITER ;
DELIMITER //
SET @idPer=NULL;
SELECT @idPer:=idPers from Cont WHERE Cont.idCont=pr_idCont;
END IF;
END //
DELIMITER ;
DELIMITER ;
DELIMITER //
END //
DELIMITER ;
DELIMITER ;
DROP VIEW IF EXISTS afisareSucursale;
#
CREATE VIEW afisareSucursale AS
SELECT Sucursala.idSucursala AS "Id sucursala", Sucursala.nume AS "Nume",
Sucursala.adresa AS "Adresa", Sucursala.nrTel AS "Numar tel"
FROM Sucursala;
#
DELIMITER ;
DELIMITER ;
DELIMITER //
END //
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;
-----------------------------------------------------------------------------------
-------
-- Procedura pentru cautarea unui angajat dintr o sucursala(asistenta)
-----------------------------------------------------------------------------------
------
DELIMITER //
SET @numeAng=NULL;
SELECT @numeAng:=nume from Persoane WHERE Persoane.nume=numeAngajat;
Set @idAng=null;
select @idAng:=id from Persoane where Persoane.nume=numeAngajat;
set @idSuc=null;
select @idSuc:=idSucursala from Angajati where Angajati.id=@idAng;
set @numeSuc=null;
select @numeSuc:=nume from Sucursala where Sucursala.idSucursala=@idSuc;
END IF;
END //
DELIMITER ;
drop view if exists Vizualizare_tranzactii;
CREATE VIEW Vizualizare_tranzactii as
SELECT Persoane.id as "Id",Tranzactii.dataTranzactie as "Data tranzactie",
TipTranzactie.nume as "Tipul tranzactiei", Tranzactii.suma as "Suma" from
Persoane, Tranzactii,TipCont,TipTranzactie
WHERE Persoane.id=Tranzactii.idContSursa and
TipTranzactie.tipTranzactie=Tranzactii.tipTranzactie;
DELIMITER //
SET @idCl=NULL;
SELECT @idCl:=id from Persoane WHERE (Persoane.nume=pr_numeCleint and
Persoane.prenume=pr_prenumeClient);
END IF;
END //
DELIMITER ;
DELIMITER //
SET @idPer=NULL;
SELECT @idPer:=idPers from Cont WHERE Cont.idCont=pr_idCont;
END //
DELIMITER ;
END //
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;
DELIMITER ;