База данных для хранения и обработки информации, которая требуется типичной психиатрической больнице, страница 29

END;

/

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

CREATE VIEW GetProperDrugDisease (

               ЛЕКАРСТВО_ID

       ,      ДИАГНОЗ_ID

       ) AS

SELECT

               ЛЕКАРСТВА_ДИАГНОЗЫ.ЛЕКАРСТВО_ID

       ,      ЛЕКАРСТВА_ДИАГНОЗЫ.ДИАГНОЗ_ID

FROM ДИАГНОЗЫ RIGHT JOIN (ЛЕКАРСТВА_ДИАГНОЗЫ LEFT JOIN ЛЕКАРСТВА ON ЛЕКАРСТВА_ДИАГНОЗЫ.ЛЕКАРСТВО_ID = ЛЕКАРСТВА.ID) ON ЛЕКАРСТВА_ДИАГНОЗЫ.ДИАГНОЗ_ID = ДИАГНОЗЫ.ID WHERE ДИАГНОЗЫ.WAS_REMOVED = 0 AND ЛЕКАРСТВА.WAS_REMOVED = 0;

CREATE VIEW AdminGetAllEmploys (

               ФАМИЛИЯ

       ,      ИМЯ

       ,      ОТЧЕСТВО

       ,      ДОЛЖНОСТЬ

       ,      КОНТАКТНЫЙ_ТЕЛЕФОН

       ,      КОГДА_УСТРОИЛСЯ

       ,      КОГДА_УВОЛИЛСЯ

       ,      ДАТА_РОЖДЕНИЯ

       ,      ID

       ,      ДОЛЖНОСТЬ_ID

       ,      ЧЕЛОВЕК_ID

       ,      Login

       ,      PASSWORD

       ,      ПАСПОРТ

       ,      ФОТОГРАФИЯ

       ,      AdministerOptions

       ) AS

SELECT

         ЧЕЛОВЕК.ФАМИЛИЯ

       , ЧЕЛОВЕК.ИМЯ

       , ЧЕЛОВЕК.ОТЧЕСТВО

       , ДОЛЖНОСТЬ.НАЗВАНИЕ

       , СОТРУДНИК.КОНТАКТНЫЙ_ТЕЛЕФОН

       , СОТРУДНИК.КОГДА_УСТРОИЛСЯ

       , СОТРУДНИК.КОГДА_УВОЛИЛСЯ

       , СОТРУДНИК.ДАТА_РОЖДЕНИЯ

       , СОТРУДНИК.ID

       , СОТРУДНИК.ДОЛЖНОСТЬ_ID

       , ЧЕЛОВЕК.ID

       , СОТРУДНИК.Login

       , СОТРУДНИК.Password

       , ЧЕЛОВЕК.ПАСПОРТ

       , СОТРУДНИК.ФОТОГРАФИЯ

       , СОТРУДНИК.AdministerOptions

FROM ЧЕЛОВЕК RIGHT JOIN (ДОЛЖНОСТЬ RIGHT JOIN СОТРУДНИК ON ДОЛЖНОСТЬ.ID=СОТРУДНИК.ДОЛЖНОСТЬ_ID) ON ЧЕЛОВЕК.ID=СОТРУДНИК.ЧЕЛОВЕК_ID ORDER BY ЧЕЛОВЕК.ФАМИЛИЯ;

CREATE VIEW UserGetAllEmploys (

               ФАМИЛИЯ

       ,      ИМЯ

       ,      ОТЧЕСТВО

       ,      ПАСПОРТ

       ,      КОГДА_УСТРОИЛСЯ

       ,      КОГДА_УВОЛИЛСЯ

       ,      ID

       ,      AdministerOptions

       ) AS

SELECT

               ФАМИЛИЯ

       ,      ИМЯ

       ,      ОТЧЕСТВО

       ,      ПАСПОРТ

       ,      КОГДА_УСТРОИЛСЯ

       ,      КОГДА_УВОЛИЛСЯ

       ,      ID

       ,      AdministerOptions

FROM AdminGetAllEmploys;

CREATE VIEW БОЛЬНЫЕ (

               ФАМИЛИЯ

       ,      ИМЯ

       ,      ОТЧЕСТВО

       ,      ПАСПОРТ

       ,      ДАТА_ПОСТУПЛЕНИЯ

       ,      ДАТА_ВЫПИСКИ

       ,      НАЗВАНИЕ_БОЛЕЗНИ

       ,      ID_БОЛЕЗНИ

       ,      ID_ИСТОРИИ

       ,      ID

       ,      ОСМОТРЕВШИЙ_ID

       ) AS

SELECT

               ЧЕЛОВЕК.ФАМИЛИЯ

       ,      ЧЕЛОВЕК.ИМЯ

       ,      ЧЕЛОВЕК.ОТЧЕСТВО

       ,      ЧЕЛОВЕК.ПАСПОРТ

       ,      ИСТОРИЯ_БОЛЕЗНЕЙ.ДАТА_ПОСТУПЛЕНИЯ

       ,      ИСТОРИЯ_БОЛЕЗНЕЙ.ДАТА_ВЫПИСКИ

       ,      ДИАГНОЗЫ.НАЗВАНИЕ

       ,      ДИАГНОЗЫ.ID

       ,      ИСТОРИЯ_БОЛЕЗНЕЙ.ID

       ,      ЧЕЛОВЕК.ID

       ,      ИСТОРИЯ_БОЛЕЗНЕЙ.ОСМОТРЕВШИЙ_ID

FROM ЧЕЛОВЕК RIGHT JOIN (ДИАГНОЗЫ RIGHT JOIN ИСТОРИЯ_БОЛЕЗНЕЙ ON ДИАГНОЗЫ.ID = ИСТОРИЯ_БОЛЕЗНЕЙ.ДИАГНОЗ_ID) ON ЧЕЛОВЕК.ID = ИСТОРИЯ_БОЛЕЗНЕЙ.БОЛЬНОЙ_ID ORDER BY ЧЕЛОВЕК.ФАМИЛИЯ;

CREATE VIEW GetPunishmentReport (

               ID

       ,      НАЗВАНИЕ

       ,      ЗА_ЧТО

       ,      КОГДА

       ,      НАЗНАЧИЛ_ID

       ,      ИСТОРИЯ_ID

       ) AS

SELECT

               НАКАЗАНИЯ.ID

       ,      НАКАЗАНИЯ.НАЗВАНИЕ

       ,      ИСТОРИЯ_НАКАЗАНИЙ.ЗА_ЧТО

       ,      ИСТОРИЯ_НАКАЗАНИЙ.КОГДА

       ,      ИСТОРИЯ_НАКАЗАНИЙ.НАЗНАЧИЛ_ID

       ,      ИСТОРИЯ_НАКАЗАНИЙ.ИСТОРИЯ_ID

FROM ИСТОРИЯ_НАКАЗАНИЙ LEFT JOIN НАКАЗАНИЯ ON ИСТОРИЯ_НАКАЗАНИЙ.НАКАЗАНИЕ_ID=НАКАЗАНИЯ.ID;

CREATE VIEW GetAllProperDrugs (

               ID

       ,      БОЛЕЗНЬ_ID

       ,      НАЗВАНИЕ

       ,      ОПИСАНИЕ

       ) AS

SELECT

               ЛЕКАРСТВА.ID

       ,      ЛЕКАРСТВА_ДИАГНОЗЫ.ДИАГНОЗ_ID

       ,      ЛЕКАРСТВА.НАЗВАНИЕ

       ,      ЛЕКАРСТВА.ОПИСАНИЕ

FROM ЛЕКАРСТВА RIGHT JOIN ЛЕКАРСТВА_ДИАГНОЗЫ ON ЛЕКАРСТВА.ID = ЛЕКАРСТВА_ДИАГНОЗЫ.ЛЕКАРСТВО_ID;

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

--настройка начальных сведений

INSERT INTO ДОЛЖНОСТЬ (НАЗВАНИЕ, ЗАРПЛАТА) VALUES ('Системный администратор', 1500);

INSERT INTO ЧЕЛОВЕК (ФАМИЛИЯ , ИМЯ, ОТЧЕСТВО, ПАСПОРТ) VALUES ('Рут', 'Админ', 'Рутович', '{713C102A50184}');

INSERT INTO СОТРУДНИК (ЧЕЛОВЕК_ID, ДОЛЖНОСТЬ_ID, КОГДА_УСТРОИЛСЯ, КОГДА_УВОЛИЛСЯ, ДАТА_РОЖДЕНИЯ, КОНТАКТНЫЙ_ТЕЛЕФОН, LOGIN, PASSWORD, AdministerOptions) VALUES(1, 1, '30.01.2001', NULL    , '05.01.1986' , '3713642', 'sa', '+UCjNsEz0Rb5VNwyN21dhg==', 1);

GRANT SELECT ON ДИАГНОЗЫ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON ЛЕКАРСТВА TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON ИСТОРИЯ_НАКАЗАНИЙ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON ЛЕЧЕНИЕ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON ИСТОРИЯ_БОЛЕЗНЕЙ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON НАКАЗАНИЯ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON ЧЕЛОВЕК TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON БОЛЬНЫЕ TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON UserGetAllEmploys TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON GetPunishmentReport TO MENTAL_HOSPITAL_USER;

GRANT SELECT ON GetAllProperDrugs TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON CreateNewPerson TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON DischargePatient TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON UserEmployeeUpdate TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON AssignPunishment TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON AssignTreatment TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON AddDiseaseHistoryEntry TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON ChangePassword TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON GetPersonalInfo TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON TryToLogin TO MENTAL_HOSPITAL_USER;

GRANT EXECUTE ON TryToLogin TO MENTAL_HOSPITAL_PUBLIC;