База данных со сведениями о пациентах и медицинских услугах в стационаре
Курсовая работа, 17 Июня 2014, автор: пользователь скрыл имя
Описание работы
На сегодняшний день деятельность большинства предприятий основана на использовании современных средств автоматизации, так как для приема, хранения, передачи информации на бумажных носителях требуются высокие затраты времени и труда специалистов. Информация, хранимая на бумажных носителях, может испортиться с течением времени, под воздействием внешних факторов. Такая информация часто не может быть восстановлена в соответствии с первоначальными документами. В современных условиях выполняется переход к автоматизированной обработке экономической информации и предпосылками для перехода к автоматизированной обработке являются:
- увеличение номенклатуры объема продукции (работ, услуг и т.д.);
- необходимость снижения затрат (времени, финансов и др. ресурсов) на производственную деятельность.
Файлы: 1 файл
Курсовик.doc
— 4.07 Мб (Скачать файл)Введение
На сегодняшний день деятельность большинства предприятий основана на использовании современных средств автоматизации, так как для приема, хранения, передачи информации на бумажных носителях требуются высокие затраты времени и труда специалистов. Информация, хранимая на бумажных носителях, может испортиться с течением времени, под воздействием внешних факторов. Такая информация часто не может быть восстановлена в соответствии с первоначальными документами. В современных условиях выполняется переход к автоматизированной обработке экономической информации и предпосылками для перехода к автоматизированной обработке являются:
- увеличение номенклатуры
- необходимость снижения затрат (времени, финансов и др. ресурсов) на производственную деятельность.
Следствием являются:
- увеличение объема
- увеличение производительности труда при обработке данных;
- необходимость сокращения
Средства автоматизации для решения экономических задач и соответствующие автоматизированные системы должны создаваться на предприятии для достижения поставленных целей.
В рамках данной предметной области необходимо разработать программу, позволяющую сопровождать базу данных со сведениями о пациентах и медицинских услугах в стационаре.
1. Постановка задачи и исходные данные.
Целью курсового проектирования является закрепление навыков по разработке программ в системе визуального программирования Delphi с использованием языка Object Pascal и проработка комплекса вопросов, решаемых в технологической цепочке создания прикладного программного обеспечения.
Общее задание на курсовое проектирование состоит в том, чтобы выполнить работы по созданию диалоговой прикладной программы в системе визуального программирования Delphi, текстовой и графической программной документации (схемы программ и данных).
Программа должна выполнять следующие функции:
- Вывод меню функций, выполняемых программой;
- Ввод, просмотр, редактирование данных о пациентах (таблица «Пациент» с полями «№ полиса», «Фамилия», «Имя», «Отчество», «Адрес», «Место работы») и о медицинских услугах в стационаре (таблица «Медицинские услуги для пациентов в стационаре» с полями «Порядковый номер», «№ полиса», «Дата поступления», «Дата выписки», «Оплата за 1 день») в базе данных (БД), содержащей 2 взаимосвязанные таблицы: «Пациент» и «Медицинские услуги для пациентов в стационаре»;
- Вычисление значения поля «Сумма»;
- Дополнение БД, удаление данных БД о пациентах и медицинских услугах в стационаре;
- Отбор (фильтрация) данных по дате поступления и дате выписки пациентов, задаваемыми пользователем;
- Сортировка данных о пациентах по месту работы и ФИО и о медицинских услугах по дате поступления и дате выписки пациентов;
- Контроль вводимых данных с выводом сообщений об ошибках: поля всех таблиц являются обязательными;
- Обработка трех исключительных ситуаций: ошибки преобразования типов данных, наличие данных, возможность выполнения вычислений;
- Сформировать отчет за месяц, сгруппированный по предприятиям, пациентам, с вычислением итоговых сумм и, отчет за месяц, вычисляющий количество поступивших пациентов по датам, которые могут быть выведены на принтер;
- Построить график, отображающий количество пациентов, поступавших в стационар в течение года и, график, отображающий суммарные затраты предприятий вылеченных пациентов в стационаре по итогам месяца;
- Вывод справочных данных;
- Вывод формы со сведениями о программе.
Состав и структура исходных данных представлены в таб. 1.1-1.2:
Таблица 1.1 - «Пациент»
Пациент | |||
№ полиса |
ФИО |
Адрес |
Место работы |
Таблица 1.2 - «Медицинские услуги для пациентов в стационаре»
Медицинские услуги для пациентов в стационаре | |||
Дата поступления |
Дата выписки |
Оплата за 1 день |
Сумма |
Прочие условия к разрабатываемой программе представлены в таб. 1.3:
Таблица 1.3 «Прочие условия»
Выбор пользовательских функций |
Переключатели |
Вид графика |
Столбиковый |
Определение места каталога с файлами БД |
Определяется в программе |
Формирование текста запроса |
Формируется в программе |
Дополнительно |
Использовать специальные компоненты для ввода дат |
2. Состав и структура данных.
Перед разработкой прикладной программы следует разработать структуру БД ( определить таблицы, их имена, имена и типы полей, назначить ключевые поля, определить отношения 1: N).
БД учёта пациентов и медицинских услуг в стационаре с помощью таблиц «Pacient.db», «Med. uslugi.db», которые создаются при помощи утилиты DataBase Desktop (DBD), входящей в комплект поставки Delphi.
Структура БД представлена на рисунке 2.1.
Pacient.db
Nfamily NName Npatromyc NPlace NJob |
NSpisok NPolis |
NData_postuplenie NData_vipiski NOplata_za_1_day |
Рис.2.1 – Структура БД
Система Delphi позволяет установить между таблицами, находящимися в отношении 1 : N, ссылочную целостность, с помощью утилиты DataBase Desktop (DBD). Связь таблиц осуществляется по полю «NPolis». Имя установленного отношения – npol_ref_int. Благодаря этой связи, перемещение указателя в главной таблице будет приводить к автоматической смене данных, отображаемых в подчинённой таблице.
Описание таблиц представлено в таблицах 2.1 и 2.2.
Таблица 2.1 «Структура записей таблицы »
Pacient.db | |||||||||
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля | |||||
Ключ |
Обяза тельное |
Ограничения значений | |||||||
Мини мальное |
Макси мальное |
По умолчанию |
Примечания | ||||||
NPolis |
Номер полиса |
Alpha |
8 |
* |
+ |
- |
- |
- |
- |
NFamaly |
Фамилия |
Alpha |
25 |
+ |
- |
- |
- |
- | |
NName |
Имя |
Alpha |
15 |
+ |
- |
- |
- |
- | |
NPatromyc |
Отчество |
Alpha |
20 |
+ |
- |
- |
- |
- | |
NPlace |
Адрес |
Alpha |
255 |
+ |
- |
- |
- |
- | |
NJob |
Место работы |
Alpha |
255 |
+ |
- |
- |
- |
- | |
Таблица 2.2 «Структура записей таблицы »
Med. uslugi.db | |||||||||
Имя поля |
Назначение поля |
Тип |
Длина (байт) |
Свойства поля | |||||
Ключ |
Обязательное |
Ограничения значений | |||||||
Минимальное |
Максимальное |
По умолчанию |
Примечания | ||||||
NSpisok |
Порядковый номер |
Autoincrement |
* |
- |
- |
- |
- | ||
NPolis |
№ полиса |
Alpha |
8 |
+ |
- |
- |
- |
- | |
NData_Postuplenie |
Дата поступления |
Date |
+ |
- |
- |
- |
- | ||
NData_Vipiski |
Дата выписки |
Date |
- |
- |
- |
- |
- | ||
Noplata_za_1_day |
Оплата за 1 день |
$ |
+ |
- |
- |
- |
- | ||
Для выполнения в программе сортировок данных были определены вторичные ключи, имена и состав которых представлен в таблице 2.3.
Таблица 2.3 «Структура записей таблицы »
Имя таблицы |
Имя вторичного ключа |
Состав (имена столбцов) |
Pacient |
family |
NFamaly |
job |
NJob | |
Med. uslugi |
post |
NData_Postuplenie |
vypis |
NData_Vipiska |
3. Методы и алгоритмы решения задач.
Для расчёта суммарной стоимости лечения пациентов в стационаре в ПП используется разность полей с датами и, значение умножается на стоимость лечения за 1 день, связанные с полями таблиц БД. Вычисления производятся в диаграммах и отчетах.
Для вычисления используется SQL-запрос и связь с БД и визуальными компонентами для отображения результатов выполнения запроса. Ввод текста запроса осуществлён с помощью свойства SQL.
SELECT Uslugi.NSpisok, Pacient.NJob,
sum((NData_Vipiska - NData_Postuplenie) * Uslugi.NOplata_za_1_day)
FROM "C:\BD\Pacient.db" Pacient
INNER JOIN "C:\BD\Med. uslugi.db" Uslugi
ON (Pacient.NPolis = Uslugi.NPolis)
WHERE NData_Vipiska is not NULL
Group By Uslugi.NSpisok, Pacient.NJob
Order By Pacient.NJob
Для реализации некоторых возможностей в ПП используется компонент TQuery, который обеспечивает хранение текста SQL-запроса и связь с БД и визуальными компонентами для отображения результатов выполнения запроса. Ввод текста запроса осуществлён с помощью свойства SQL, параметры запроса определены с помощью свойства Params в коде программы.
Для выполнения фильтрации данных по дате поступления в таблице "Med. uslugi" используется следующая процедура:
procedure TBD.Button2Click(Sender: TObject);
begin
if Button2.Caption='Фильтр по поступлению' then
begin
Button1.Caption:='Фильтр по выписке';
Table2.Filter:= 'NData_Postuplenie
= ' + QuotedStr(DateToStr(
Table2.Filtered:=true;
Button2.Caption:='Отменить фильтр по поступлению'
end
else
begin
Button2.Caption:='Фильтр по поступлению';
Table2.Filtered:=false;
end;
end;
Для выполнения фильтрации данных по дате выписки в таблице "Med. uslugi" используется следующая процедура:
procedure TBD.Button1Click(Sender: TObject);
begin
if Button1.Caption='Фильтр по выписке' then