Автоматизированная система для работы поликлиники

Отчет по практике - Компьютеры, программирование

Другие отчеты по практике по предмету Компьютеры, программирование

ний,isnull(COUNT(distinct пациент.логин_пациента),0)as количествопациентов,isnull (sum(distinct рецепт.количество),0) as количестволекарств,isnull (count( distinct направление_на_анализ.идентификатор_направления),0)AS количествовыписанныханализов,isnull (count( distinct направление_на_анализ.результат),0) as количествополученныхрезультатовврач inner join расписание on расписание.логин_врача = врач.логин_врачаjoin посещение on посещение.идентификатор_расписания = расписание.идентификатор_расписанияjoin пациент on пациент.логин_пациента = посещение.логин_пациента and посещение.логин_пациента is not nulljoin рецепт on рецепт.идентификатор_посещения = посещение.идентификатор_посещенияjoin направление_на_анализ on направление_на_анализ.идентификатор_посещения = посещение.идентификатор_посещения groupby врач.имя

 

4.1.35 Поиск врачей по специальности и участку

CREATE PROCEDURE [doctors_for_spec_and_uch](@num_uch int,@spec_name varchar(50))врач.имяучасток inner join врач on врач.номер_участка = участок.номер_участкаjoin специальность on специальность.идентификатор_специальности = врач.идентификатор_специальностиучасток.номер_участка = @num_uch and специальность.наименование_специальности = @spec_name

4.1.36 Поиск логина и пароля врача в системе

CREATE PROCEDURE [doctor_login](@login varchar(50),@password varchar(50))@number int ;@number =0;(EXISTS(select *врачпароль = @password and логин_врача = @loginby логин_врача ))@number = COUNT(*)врачпароль = @password and логин_врача = @loginby логин_врача@number

 

4.1.37 Поиск специальностей врачей на участке

CREATE PROCEDURE [spec_on_uch](@num_uch int)distinct специальность.наименование_специальностиспециальность inner join врач on врач.идентификатор_специальности = специальность.идентификатор_специальностиjoin участок on участок.номер_участка = врач.номер_участка@num_uch = участок.номер_участка

 

4.1.38 Обновление информации о враче

CREATE PROCEDURE [update_doctor](@old_login varchar(50),@name varchar(50),@date_prac date,@date_b date,@adress varchar(max),@login varchar(50),@password varchar(50))врачимя = @name,

врач.начало_практики = @date_prac,

врач.дата_рождения = @date_b,

врач.адрес = @adress,

врач.логин_врача = @login,

врач.пароль = @passwordврач.логин_врача = @old_login

 

4.1.39 Номер участка по улице

CREATE PROCEDURE [uch_id_for_street_id](@street_id int)улица.номер_участкаулицаулица.идентификатор_улицы = @street_id

 

4.1.40 Свободные кабинеты для дня недели и смены

CREATE PROCEDURE [rooms_for_day_smena](@day int, @smena int)@count_smena int@count_smena = COUNT(*)сменакабинет.номер_кабинетакабинетномер_кабинета not inрасписание.номер_кабинета

)расписание inner join смена on смена.идентификатор_смены = расписание.идентификатор_сменырасписание.идентификатор_дня_недели = @day and смена.идентификатор_смены = @smena

)

 

 

4.1.41 Номера кабинетов для доктора, где у него идёт прием

CREATE PROCEDURE [room_num_for_doc_id_and_day](@id varchar(50),@id_day int)distinct кабинет.номер_кабинетакабинет inner join расписание on расписание.номер_кабинета = кабинет.номер_кабинетарасписание.логин_врача = @id and расписание.идентификатор_дня_недели=@id_day

4.1.42 Расписание по имени доктора

CREATE PROC [rasp_for_doctor_name](@doctor_name varchar(50))@doctor_login varchar(50);@doctor_login = врач.логин_врачаврачврач.имя = @doctor_nameрасписание.идентификатор_расписания, название_дня_недели,время_начала, смена.время_конца,кабинет.номер_кабинета,врач.имя from врачjoin расписание on врач.логин_врача =расписание.логин_врачаjoin смена on смена.идентификатор_смены = расписание.идентификатор_сменыjoin кабинет on расписание.номер_кабинета = кабинет.номер_кабинетаjoin день_недели on расписание.идентификатор_дня_недели = день_недели.идентификатор_дня_неделиврач.логин_врача = @doctor_login

 

4.1.43 Рабочие смены для доктора по его логину, дню недели и номеру кабинета

CREATE PROCEDURE [smena_for_doc_id_and_day_and_room](@id varchar(50),@id_day int,@room int)идентификатор_смены, идентификатор_расписаниякабинет inner join расписание on расписание.номер_кабинета = кабинет.номер_кабинетарасписание.логин_врача = @id and расписание.идентификатор_дня_недели=@id_dayрасписание.номер_кабинета = @room

 

4.1.44 Рабочие смены для доктора по его логину и дню недели

CREATE PROCEDURE [smena_for_day_and_doctor](@day int, @doc_login varchar(50))смена.идентификатор_сменысменасмена.идентификатор_смены not in(расписание.идентификатор_сменырасписаниерасписание.идентификатор_дня_недели = @day and расписание.логин_врача = @doc_login

)

 

4.1.45 Вставка строки расписания

CREATEPROCEDURE [insert_into_table](@doc_idvarchar(50),@num_cabint,@day_idint,@smenaint)into расписание (логин_врача,номер_кабинета,идентификатор_дня_недели,идентификатор_смены,msrepl_tran_version)(@doc_id, @num_cab,@day_id,@smena,NEWID())

 

4.1.46 Общее расписание

CREATE PROCEDURE [get_table_id]расписание.идентификатор_расписания, смена.время_начала, смена.время_конца,врач.длительность_приема, идентификатор_дня_неделирасписание inner join смена on смена.идентификатор_смены = расписание.идентификатор_сменыjoin врач on врач.логин_врача = расписание.логин_врачаby идентификатор_расписания

 

4.1.47 Удаления строки расписания

CREATE PROCEDURE [delete_table](@id int)расписаниерасписание.идентификатор_расписания = @id

 

4.1.48 Количество отработанных врачом часов в неделю

CREATE PROCEDURE [doctor_work_time]врач.имя ,врач.номер_участка, специальность.наименование_специальности,isnull(sum(DATEDIFF(HOUR,смена.время_начала,время_конца)),0) AS количествочасовспециальность inner join врач on специальность.идентификатор_специальности = врач.идентификатор_специальностиjoin расписание on расписание.логин_врача = врач.логин_врачаjoin смена on смена.идентификатор_смены = расписание.идентификатор_сменыby врач.имя, специальность.наименование_специальности,врач.номер_участкаby [количество часов]desc

 

4.2 Описание триггеров

 

.2.1 Триггер insteadofinsertдля таблицы расписание

При добавлении строки расписания проверяется есть ли кабинет из вставляемой строки в справочн?/p>