Автоматизированная система для работы поликлиники
Отчет по практике - Компьютеры, программирование
Другие отчеты по практике по предмету Компьютеры, программирование
ний,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>