Разработка учебного проекта "База данных поликлиники"
Назначение и задачи создания информационной системы "База данных поликлиники". Перечень функций, реализуемых программой. Обоснование выбора средств разработки программы. Разработка программы, структуры информационной базы и руководства пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 24.06.2015 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
СОДЕРЖАНИЕ
- ВВЕДЕНИЕ
- 1. НАЗНАЧЕНИЕ ПРОЕКТИРУЕМОЙ ПРОГРАММЫ
- 1.1 Вид деятельности, для автоматизации которой предназначена программа
- 1.2 Объекты автоматизации, на которых используется программа
- 1.3 Перечень функций, реализуемых программой
- 1.4 Обоснование выбора средств разработки программы
- 2. ПРОЕКТИРОВАНИЕ ПРОГРАММЫ
- 3. РАЗРАБОТКА СТРУКТУРЫ ИНФОРМАЦИОННОЙ БАЗЫ (БАЗЫ ДАННЫХ)
- 3.1 Организация внутримашинной информационной базы
- 3.1.1 Логическая структура
- 3.1.2 Физическая структура
- 3.2 Описание организации внемашинной информационной базы
- 3.2.1 Организация внемашинной информационной базы
- 3.2.2 Физическая структура
- 4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
- 4.1 Настройка сервера баз данных
- 4.2 Запуск программы
- 4.3. Порядок выполнения программы
- 4.3.1 Вкладка "Врачи"
- 4.3.2 Вкладка "Пациенты"
- 4.3.3 Вкладка "Пациенты стационара"
- 4.3.4 Вкладка "Результаты обследования"
- 4.3.5 Вкладка "Больничные листы"
- 4.3.6 "Администрирование"
- 4.3.7 Выход
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- ПРИЛОЖЕНИЕ А. Структура файлов БД Поликлиники
- ПРИЛОЖЕНИЕ Б. СХЕМА БД Поликлиники
ВВЕДЕНИЕ
Информационное общество подразумевает широкое применение компьютеров во всех сферах человеческой деятельности. В настоящее время в обществе огромную роль играют системы распространения, хранения и обработки информации, основанные на работе компьютера. Образуются межрегиональные и международные системы связи, которые позволяют обмениваться информацией на больших территориях за минимальные сроки. Наиболее известная такая система - Internet. Растет количество людей, профессионально занятых сбором, хранением и обработкой информации.
Еще одной тенденцией развития информационных технологий является глобализация информационного бизнеса. Чисто теоретически любой человек является сегодня потребителем информации. Поэтому возможности информационного рынка по-прежнему являются беспредельными, хотя и существует довольно жесткая конкуренция между основными производителями. информационный база поликлиника программа
Современные информационные технологии -- мощный инструмент, который в узком смысле обеспечивает конкурентоспособность предприятия и является возможностью совершенствования бизнеса. В широком смысле он показывает уровень развития страны, характеризуя степень ее вовлеченности в глобальные процессы. В связи с этим возникает необходимость оценки степени влияния информационных технологий (ИТ) на экономические процессы, то есть оценки их эффективности.
Объектом разработки в данной курсовой работе является Информационная система медицинских организаций города (ИС МОГ)
Целью данной курсовой работы является создание информационной системы которая обеспечивает анализ и хранение данных, а также предоставляет информацию для принятия решений пользователями.
Для этого необходимо выполнить следующие задачи:
1) рассмотреть назначение и задачи создания системы;
2) рассмотреть перечень функций, реализуемых системой
3) спроектировать структуру системы;
4) разработать алгоритм работы системы;
5) продумать интерфейс системы;
6) разработать структуру базы данных;
7) разработать структуру программного обеспечения;
В качестве ОС для разработки была выбрана Windows XP Professional. В качестве технологии разработки будет использована технология ActiveX Data Objects (ADO). Информационная система будет представлять собой реляционную базу данных под управлением MySQL Server 5.5.
1. НАЗНАЧЕНИЕ ПРОЕКТИРУЕМОЙ ПРОГРАММЫ
1.1 Вид деятельности, для автоматизации которой предназначена программа
Разработка БД Поликлиники обеспечивает загрузку, анализ и хранение данных, а также предоставляет информацию для принятия решений пользователями.
Цели разработки БД Поликлиники:
- повышения качества деятельности на основе автоматизации трудоемких операций сбора и обработки информации;
- получение, загрузка в базу данных (БД), накопление, поиск, обработка, хранение и представление информации, содержащей данные о деятельности медицинского учреждения.
1.2 Объекты автоматизации, на которых используется программа
Автоматизации подлежит деятельность, проводимая работниками медицинского учреждения (поликлиники). Программа предназначена для повышения эффективности деятельности медицинского учреждения.
1.3 Перечень функций, реализуемых программой
В БД Поликлиники должны быть реализованы следующие функции:
а) загрузка и контроль входной информации;
б) обеспечение надежного хранения и обработки данных в БД;
в) предоставление возможности удаленного доступа к хранимой информации;
г) обеспечение формирования и печати отчетов в системе, возможность формирования представлений отчетных документов.
1.4 Обоснование выбора средств разработки программы
Для разработки БД Поликлиники будет использована среда разработки Borland Delphi 7 Enterprise, язык программирования Delphi, СУБД MySQL Server 5.5, технология ActiveX Data Objects (ADO).
Delphi (Borland Delphi и CodeGear Delphi) - интегрированная среда разработки ПО для Microsoft Windows на языке Delphi (строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal).
Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы и решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.
Borland Delphi 7 Studio может работать в среде операционных систем от Windows 98 до Windows 7. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron с тактовой частотой не ниже 166 МГц (рекомендуется Pentium II 400 МГц), оперативной памяти - 128 Мбайт (рекомендуется 256 Мбайт), достаточное количество свободного дискового пространства (для полной установки версии Enterprise необходимо приблизительно 475 Мбайт).
В Delphi 7 есть стандартные компоненты для работы с текстовыми данными (Edit, Label, ListBox, MainMenu и другие), а также компоненты для работы с Microsoft ActiveX Data Objects (ADO).
ADO - это технология стандартного обращения к реляционным структурам данных от Microsoft (реляционные базы данных). В основе архитектуры ADO лежит объектная модель компонентов COM (Component Object Model). Все объекты и интерфейсы ADO представляют собой интерфейсы и объекты СОМ. Модель СОМ является базовой для технологий ActiveX и OLE. Технология СОМ работает с СОМ-обьектами, которые во многом похожи на обычные объекты визуальной библиотеки компонентов Delphi. Но, в отличие от последних, СОМ-объекты не содержат поля, в них находятся лишь свойства и методы, а также интерфейсы.
Неотъемлемой частью любой автоматизированной информационной системы являются системы управления базами данных. Они обеспечивают создание базы данных, поддержку ее в актуальном состоянии и предоставление эффективного доступа пользователям и приложениям к информации, хранящейся в базе данных. Так БД используют несколько пользователей, они могут работать с БД только последовательно. Однако работа на изолированном ПК для разрабатываемой ИС не представляется возможной. .
Параллельный доступ к одной БД многих пользователей,. если БД расположена на нескольких ПК, распределенных в сети, и к ней возможен параллельный доступ нескольких пользователей. Такие системы называются системами распределенных (удаленных) баз данных.
Примером одной из самых распространенных удаленных баз данных является Mysql Server 5.5. При небольших объемах данных MySQL - это самый оптимальный выбор.
Преимущества MySQL:
Ш наилучшая скорость обработки данных на объеме до 500000 записей;
Ш бесплатные открытые лицензии;
Ш простота использования;
Ш возможность использования на различных платформах (Unix, Windows, др.);
2. ПРОЕКТИРОВАНИЕ ПРОГРАММЫ
Программа БД Поликлиники будет иметь серверную и клиентскую части.
В сетевой архитектуре "клиент-сервер" БД размещается на компьютере-сервере сети (сервере или удаленном сервере) и называется также удаленной БД. Приложение, осуществляющее работу с этой БД, находится на компьютере пользователя. Приложение пользователя является клиентом, его также называют приложением-клиентом.
Клиент и сервер взаимодействуют следующим образом. Клиент формирует и отсылает запрос (SQL-запрос) серверу, на котором размещена БД. Сервер выполняет запрос и выдает клиенту в качестве результатов требуемые данные.
Таким образом, в архитектуре "клиент-сервер" клиент посылает запрос и получает только те данные, которые ему действительно нужны. Вся обработка запроса выполняется на удаленном сервере. К достоинствам такой архитектуры относятся следующие факторы. Для работы с данными используется реляционный способ доступа, что снижает нагрузку на сеть.
Приложения напрямую не управляют базой, управлением занимается только сервер. В связи с этим можно обеспечить высокую степень защиты данных.
В приложении отсутствует код, связанный с управлением БД, поэтому приложения упрощаются.
При работе в архитектуре "клиент-сервер" приложение должно:
o выполнять соединение с сервером и отключение от него;
o формировать и отсылать запрос серверу, получая от него результаты выполнения запроса;
o выполнять обработку полученных данных.
Взаимодействие серверной и клиентской части представлено на рисунке 2.1.
Рисунок 2.1
Бизнес-логика разделена между клиентом и сервером. На сервере бизнес-логика реализована в виде хранимых процедур -- специальных программных модулей, которые хранятся в БД и управляются непосредственно СУБД. Клиентское приложение обращается к серверу с командой запуска хранимой процедуры, а сервер выполняет эту процедуру и регистрирует все изменения в БД, которые в ней предусмотрены. Сервер возвращает клиенту данные, релевантные его запросу, которые требуются клиенту либо для вывода на экран, либо для выполнения части бизнес-логики, которая расположена на клиенте. Трафик обмена информацией между клиентом и сервером резко уменьшается.
В данной модели сервер является активным, потому что не только клиент, но и сам сервер, используя механизм триггеров, может быть инициатором обработки данных в БД.
И хранимые процедуры хранятся в словаре БД, они могут быть использованы несколькими клиентами, что. существенно уменьшает дублирование алгоритмов обработки данных в разных клиентских приложениях.
Для написания хранимых процедур используется расширение стандартного языка SQL, - встроенный SQL.
3. РАЗРАБОТКА СТРУКТУРЫ ИНФОРМАЦИОННОЙ БАЗЫ (БАЗЫ ДАННЫХ)
3.1 Организация внутримашинной информационной базы
Внутримашинная база данных будет организована в виде реляционной табличной структуры, обслуживаемой специализированным программным обеспечением - СУБД MySQL Server 5.5. Пополнение, актуализация и очистка БД производится в ходе нормального функционирования системы, в соответствии с заложенной в программные компоненты системы процедурной логикой. В состав базы данных входят таблицы, представления, процедуры, функции, триггеры.
3.1.1 Логическая структура
Логическая структура информационной базы определена схемой "pclinic", включающей структуры таблиц, индексы, а также хранимые процедуры.
В состав схемы "pclinic" входят следующие таблицы:
- examination_resoults - информация о кабинетах поликлинике;
- examination_resoults. (Результаты обследования). Информация о результатах обследования в поликлинике;
- doctors (Медперсонал-врачи) Информация о врачах, работающих в поликлинике;
- sick_leave_certificates (Больничные листы). Информация о больничных листах, выданных поликлиникой;
- holiday (Отпуска). Информация об отпусках;
- patients (Пациенты). Информация о пациентах поликлиники;
- patients_stat (Пациенты стационара). Информация о пациентах, лечащихся стационарно;
- s_diagnosis Диагнозы). Справочник диагнозов;
- s_positions (Должности). Справочник должностей;
- s_units (Отделения). Справочник отделений;
- users (Пользователи). Пользователи приложения.
В состав схемы "plinic" входят следующие хранимые процедуры:
- add_or_updt_examination - обновляет запись или добавляет новую в таблице examination_resoults;
- add_sick_leave - добавляет новую запись в таблицу sick_leave_certificates;
- close_sick_leave_cert - Закрывает больничный лист путем обновления записи в соответствующей таблице;
- get_columns - возвращает список наименований и комментариев заданной таблицы;
- get_user_params - возвращает пользователя по его логину и паролю;
- service_nurce - возвращает перечень данные о количество пациентов, обслуженных каждой медсестрой по месяцам;
- select1 - возвращает число пациентов, выписанных из стационара по месяцам;
- select3 - возвращает число различных стационарных пациентов было на каждого врача за год;
- select6 - возвращает статистические величины (среднее, максимальное, минимальное значения, количество) по пациентам за год;
- update_cur_rep - обеспечивает обновление отчета о количестве пациентов, принятых врачами в текущем месяце (у каждого врача).
В состав схемы "plinic" входят следующие хранимые функции:
- get_age - возвращает число полных лет по дате рождения;
- get_age_format - возвращает форматированное число полных лет по дате рождения;
- get_init - возвращает фамилию с инициалами по полному ФИО;
- get_monthname - возвращает наименование месяца по-русски.
В состав схемы "plinic" входят следующие представления:
- v_doctors- Врачи;
- v_examination_resoults- Результаты обследования;
- v_holidays - Отпуска;
- v_patients_stat- Пациенты стационара;
- v_sick_leave_certificates- Больничные листы.
В состав схемы "plinic" входят следующие триггеры:
- update_patient_stat - Выставляет значение "число дней проведенных в стационаре" при выписке пациента из стационара;
- set_password - Шифрует пароль пользователя в БД.
Перечень и описание форматов файлов информационного обмена приведены в приложении А.
3.1.2 Физическая структура
Физическая структура схемы "pclinic" БД Поликлиники разработана основе логической модели предметной области.
Структура схемы "pclinic" представлена в приложении B.
3.2 Описание организации внемашинной информационной базы
3.2.1 Организация внемашинной информационной базы
В состав входной информации входят записи, формы отчетов, справки, больничные листы, обследования, внутренние документы медицинского учреждения.
3.2.2 Физическая структура
Структура файлов информационного обмена основана на совокупности данных и документов, формируемых в результате деятельности медицинского учреждения (поликлиники).
4. РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ
4.1 Настройка сервера баз данных
Установить сервер баз данных MySQL Server 5.5. При установке назначить пароль для пользователя root.
Развернуть БД УЦ выполнив в консоли команду
mysql -uroot -ppassword <'/путь к файлу/db_pclinic.sql'
Установить mysql-connector-odbc-5.2.6-win32.msi.
Создать подключение к БД:
Пуск ->Панель управления -> Администрирование - Источники данных (ODBC).
Создать пользовательский DSN источник данных с именем mysql_pclinic и настройками к своей БД
4.2 Запуск программы
Запуск программы осуществляется:
– активизацией ярлыка программы на рабочем столе экрана монитора;
– вызовом программы из соответствующего каталога;
– вызовом программы из меню "Пуск".
В окне авторизации (рисунок 4.1) в поле "Логин:" ввести имя пользователя (оператора), в поле "Пароль:" - пароль оператора. Нажать кнопку "Войти".
Рисунок 4.1
При успешной авторизации откроется главное окно программы. Если имя или пароль введены неверно, то программа выдаст сообщение "Неверное имя пользователя и (или) пароль".
4.3 Порядок выполнения программы
В программе возможны три роли пользователя: администратор, пользователь, регистратор.
- "Администратор" - доступны все функции приложения, в частности модификация данных, добавление и удаление пользователей приложения;
- "Пользователь" - функции модификации данных недоступны, возможность просматривать информацию, вести поиск данных;
- "Регистратор" - недоступны функции модификации данных, есть возможность добавления новых данных, просматривать информацию, вести поиск данных.
В верхней части главного окна расположена полоса вкладок:
- "Пациенты стационара" - страница для работы с информацией о пациентах, лечащихся стационарно;
- "Врачи" - страница для работы с информацией о врачах, работающих в поликлинике;
- "Отпуска" - страница для работы с информацией об отпусках медицинского персонала;
- "Результаты обследования" - страница для работы с информацией об обследованиях, проводимых в поликлинике;
- "Пациенты" - страница для работы с информацией о пациентах;
- "Листы" - страница для работы с информацией о больничных листах.
Также в главном меню с пунктами: Отчеты, Администрирование, Справочники, Статистика.
4.3.1 Вкладка "Врачи"
В таблице представлен список врачей, работающих в поликлинике.
Чтобы получить список врачей или одну запись по фамилии (начальным буквам фамилии) врача следует ввести искомые данные в поле "Фамилия". Данные отобразятся в таблице на форме (Рисунок 4.1).
Рисунок 4.2
Чтобы получить перечень врачей конкретного отделения следует выбрать из списка "Отделение" выбрать нужное. Данные отобразятся в таблице на форме.
Для редактирования записи нужно установить курсор на запись и нажать кнопу "ИЗМЕНИТЬ". В открывшейся форме в поля внести изменения и нажать кнопку "Сохранить" Рисунок 4.3
Рисунок 4.3
Для добавления новой записи нужно нажать кнопку "Новая запись". В открывшейся форме заполнить поля и нажать кнопку "Сохранить".
4.3.2 Вкладка "Пациенты"
В таблице на форме представлен список всех пациентов поликлиники.
Чтобы получить перечень пациентов или одну запись по фамилии (начальным буквам фамилии) пациента следует ввести искомые данные в поле фамилия.
Данные отобразятся в таблице на форме (Рисунок 4.4).
Рисунок 4.4
Для редактирования записи нужно установить курсор на запись и в группе модификация данных отредактировать данные в полях, нажать кнопку "Сохранить".
Для добавления новой записи нужно в группе модификация данных нажать кнопку "Новая запись". Внести данные в поля, нажать кнопку "Сохранить".
4.3.3 Вкладка "Пациенты стационара"
В таблице представлен список всех пациентов стационарного лечения.
Чтобы получить список пациентов или одну запись по фамилии (начальным буквам фамилии) пациента следует ввести искомые данные в поле "Фамилия пациента". Данные отобразятся в таблице на форме (Рисунок 4.5).
Чтобы получить список пациентов, которых обслуживает конкретная медсестра, следует ввести искомые данные в поле "Обслуживающая медсестра". Данные отобразятся в таблице на форме.
Чтобы получить список пациентов, которые еще не выписаны из стационара, нужно включить опцию "Не выписанные". Данные отобразятся в таблице на форме.
Рисунок 4.5
Чтобы получить перечень врачей конкретного отделения следует выбрать из списка "Отделение" выбрать нужное. Данные отобразятся в таблице на форме.
Для редактирования записи нужно установить курсор на запись и нажать кнопу "ИЗМЕНИТЬ". В открывшейся форме в поля внести изменения и нажать кнопку "Сохранить".
Для добавления новой записи нужно нажать кнопку "Новая запись". В открывшейся форме заполнить поля и нажать кнопку "Сохранить".
Рисунок 4.6
4.3.4 Вкладка "Результаты обследования"
В таблице представлены результаты обследований, проводимых в поликлинике.
Чтобы получить список пациентов или одну запись по фамилии (начальным буквам фамилии) пациента, проходившими(им) обследование следует ввести искомые данные в поле "Пациент". Данные отобразятся в таблице на форме.
Чтобы получить список врачей или одну запись по фамилии (начальным буквам фамилии) врача, проводившим обследование следует ввести искомые данные в поле "Врач". Данные отобразятся в таблице на форме (Рисунок 4.7).
Чтобы получить список данных, отфильтрованных по дате проведения обследования, следует в списке "Дата" выбрать условие (равно/ранее/позднее) и дату из календаря. Данные отобразятся в таблице на форме.
Чтобы получить список пациентов, которые еще не выписаны из стационара, нужно включить опцию "Не выписанные". Данные отобразятся в таблице на форме.
Рисунок 4.7
Для редактирования записи нужно установить курсор на запись и нажать кнопу "ИЗМЕНИТЬ". В открывшейся форме в поля внести изменения и нажать кнопку "Сохранить".
Для добавления новой записи нужно нажать кнопку "Новая запись". В открывшейся форме заполнить поля и нажать кнопку "Сохранить".
4.3.5 Вкладка "Больничные листы"
В таблице представлены данные из больничных листов.
Чтобы получить список пациентов или одну запись по фамилии (начальным буквам фамилии) пациента, получившим лист следует ввести искомые данные в поле "Пациент". Данные отобразятся в таблице на форме.
Чтобы получить список листов с определенным диагнозом следует ввести искомые данные в поле "Диагноз". Данные отобразятся в таблице на форме.
Чтобы получить список данных, отфильтрованных по дате открытия/закрытия листа, следует в списках "Дата начала"/"Дата окончания" выбрать дату из календаря. Данные отобразятся в таблице на форме.
Для добавления новой записи нужно нажать кнопку "Новая запись". В открывшейся форме заполнить поля и нажать кнопку "Сохранить".
Чтобы закрыть больничный лист следует установить курсор на запись и нажать кнопу "ЗАКРЫТЬ". В открывшейся форме установить дату окончания больничного листа и нажать кнопку "Сохранить".
4.3.6 "Администрирование"
Меню "Администрирование" доступно для пользователя с правами администратора (рисунок 4.8).
Форма "Администрирование пользователей" содержит таблицу с данными о пользователях системы: ФИО, логин, пароль, группа пользователей. Администратор может добавлять новых, редактировать учетные записи, удалять пользователей.
Рисунок 4.8
4.3.7 Выход
Для выхода из программы необходимо на главной форме нажать кнопку "".
ЗАКЛЮЧЕНИЕ
Целью данного курсового проекта является Разработка учебного проекта "База данных поликлиники".
В результате работы над курсовым проектом в соответствие с задачами, описанными в разделе "Введение", была разработана программа, представляющая собой программное средство анализа и статистики деятельности медицинского учреждения (поликлиники).
Разработанная информационная система способна повысить эффективность деятельности на основе автоматизации трудоемких операций анализа, статистки и обработки информации.
Все требования по функциям системы, описанные в разделах курсовой работы, выполнены.
В качестве технологии для разработки использовалась технология ADO. В качестве СУБД была выбрана надежная СУБД MySQL 5.5, обладающая многими преимуществами.
В результате работы над курсовым проектом был получен опыт программирования на языке Delphi, закреплены практические знания PL/SQL, DL/SQL.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. MySQL / Поль Дюбуа - Вильямс, 2001. - 816
2. Базы данных. Основы SQL реляционных баз данных / Копейкин М.В., Спиридонов В.В., Шумова Е.O. - СЗТУ, 2005. - 160 с.
3. Программирование в Delphi 7 / Архангельский А.Я. + дискета, М.: Бином, 2005. - 987 с.
4. Программирование в среде Delphi 7. Самоучитель / Галисеев Г.В.. - М.: Издательский дом «Вильямс»,2005 - 256 с.
5. Самоучитель MySQL 5 / Кузнецов М., Симдянов И. - БХВ-Петербург, 2006. - 546 с.
6. Справочное пособие Delphi 7 / Архангельский А.Я.. - М.: Бином-Пресс. -2004. -1024 с.
7. Структуризированный язык запросов (SQL) / Кириллов В.В., Громов Г.Ю. - СПГИТМО, html-формат.
ПРИЛОЖЕНИЕ А. Структура файлов БД Поликлиники
А.1 Схема pclinic
А.1.1 Структура таблиц схемы pclinic приведена в таблицах А.1 - А.6.
Таблица A.6 - examination_resoults. (Результаты обследования). Информация о результатах обследования в поликлинике
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код записи |
id_exr |
Первичный ключ |
INT |
||
Код пациента |
patient |
VARCHAR |
20 |
||
Дата обращения (и время) |
date_ |
DATE |
|||
Поставленный диагноз |
diagnosis |
INT |
|||
Код лечащего врача |
doctor |
INT |
|||
Стационарное лечение |
stat |
VARCHAR |
15 |
Таблица A.2 - doctors (Медперсонал-врачи) Информация о врачах, работающих в поликлинике
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код врача |
id_doctor |
INT |
|||
Фамилия |
surname |
VARCHAR |
255 |
||
Имя |
name |
VARCHAR |
255 |
||
Отчество |
lastname |
VARCHAR |
255 |
||
Дата приема на работу |
date_on |
DATE |
|||
Должность |
position |
INT |
|||
Отделение |
unit |
INT |
Таблица A.2 - sick_leave_certificates (Больничные листы). Информация о больничных листах, выданных поликлиникой
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Номер больничного листа |
id_slc |
Первичный ключ |
INT |
||
ФИО пациента |
patient_name |
VARCHAR |
250 |
||
Диагноз |
diagnosis |
Внешний ключ на табл. diagnosis |
|||
Дата открытия листа |
date_begin |
DATE |
|||
Дата закрытия листа |
date_end |
DATE |
|||
ФИО лечащего врача |
doctor_name |
VARCHAR |
255 |
Таблица A.3- holiday (Отпуска). Информация об отпусках
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код отпуска |
id_holiday |
Первичный ключ |
INT |
||
Код врача |
doctor |
Внешний ключ на табл.doctors |
INT |
20 |
|
Дата начала отпуска, |
date_begin |
DATE |
|||
Дата окончания отпуска |
date_end |
DATE |
Таблица A.4- patients (Пациенты). Информация о пациентах поликлиники
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код пациента |
id_patient |
Первичный ключ |
INT |
||
Фамилия |
surname |
VARCHAR |
100 |
||
Имя |
name |
VARCHAR |
100 |
||
Отчество |
lastname |
VARCHAR |
100 |
||
Дата рождения |
date_of_birth |
DATE |
|||
Адрес |
address |
VARCHAR |
50 |
||
Телефон |
phone |
VARCHAR |
50 |
Таблица A.5- patients_stat (Пациенты стационара). Информация о пациентах, лечащихся стационарно
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код стационарного больного |
id_pat_st |
Первичный ключ |
INT |
||
Код пациента |
patient |
Внешний ключ на табл.patients |
INT |
||
Код лечащего врача |
doctor |
Внешний ключ на табл.doctors |
INT |
||
Диагноз |
diagnosis |
Внешний ключ на табл.diagnosis |
INT |
||
Дата поступления в стационар |
date_on |
DATE |
|||
Дата выписки из стационара |
date_off |
DATE |
|||
Общий срок лечения (дней) |
period_days |
INT |
|||
Обслуживающая медсестра(ФИО) |
nurse_serv |
VARCHAR |
150 |
Таблица A.6- s_diagnosis (Диагнозы). Справочник диагнозов
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код диагноза |
id_diag |
Первичный ключ |
INT |
||
Название диагноза |
diagnosis_name |
VARCHAR |
150 |
Таблица A.7- s_positions (Должности). Справочник должностей
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код должности |
id_position |
Первичный ключ |
INT |
||
Название должности |
position_name |
VARCHAR |
100 |
||
Размер оклада |
salary |
INT |
Таблица A.8- s_units (Отделения). Справочник отделений
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Код отделения |
id_position |
Первичный ключ |
INT |
||
Отделение |
position_name |
VARCHAR |
100 |
Таблица A.9- users (Пользователи). Пользователи приложения
Наименование данных |
Имя поля |
Ключ |
Тип данных |
Длина поля |
|
Идентификатор пользователя |
id_user |
Первичный ключ |
INT |
||
Логин |
login |
VARCHAR |
250 |
||
Пароль |
`password` |
Внешний ключ на табл. diagnosis |
VARCHAR |
255 |
|
Фамилия |
fam |
VARCHAR |
255 |
||
Имя |
name |
VARCHAR |
255 |
||
Отчество |
lastname |
VARCHAR |
255 |
||
Должность |
dolzh |
INT |
|||
Роль, 0-админ.,1-регистратор, 2-пользователь |
admin |
TINYINT |
Процедура A.10 - add_or_updt_examination- обновляет запись или добавляет новую в таблице examination_resoults (Результаты обследования). Входные данные (IN patient_ INT, IN date__ DATETIME, IN diagnosis_ INT, IN doctor_ INT, IN stat_ VARCHAR(255), IN id_ex INT). Выходные данные отсутствуют.
Тело процедуры:
BEGIN
IF id_ex = -1 THEN
INSERT INTO pclinic.examination_resoults (patient, date_, diagnosis, doctor, stat) VALUES (patient_, date__, diagnosis_, doctor_, stat_);
ELSE
UPDATE pclinic.examination_resoults
SET
patient = patient_, date_ = date__, diagnosis = diagnosis_,
doctor = doctor_, stat = stat_
WHERE
id_exr = id_ex;
END IF;
END
Процедура A.11 - add_sick_leave - добавляет новую запись в таблицу sick_leave_certificates (Больничные листы) . Входные данные (patient_name_ VARCHAR(255), diagnosis_ INT, date_begin_ DATE, date_end_ DATE, doctor_name_ VARCHAR(255). Выходные данные отсутствуют.
Тело процедуры:
BEGIN
insert INTO pclinic.sick_leave_certificates(patient_name,diagnosis,date_begin,date_end,doctor_name)VALUES
( patient_name_, diagnosis_, date_begin_, date_end_, doctor_name_);
END
Процедура A.12 - close_sick_leave_cert - Закрывает больничный лист путем обновления записи в соответствующей таблице. Входные данные (id_sick_leave_cert VARCHAR(255), date_end_ DATE) . Выходные данные отсутствуют.
Тело процедуры:
BEGIN
UPDATE pclinic.sick_leave_certificates
SET
date_end = date_end_
WHERE
id_slc = id_sick_leave_cert;
END
Процедура A.13- get_columns - возвращает список наименований и комментариев заданной таблицы. Входные данные (IN table_name_ VARCHAR(50)). Выходные данные отсутствуют.
Тело процедуры:
BEGIN
SELECT COLUMN_NAME as col
, COLUMN_COMMENT as com
FROM
information_schema.`COLUMNS`
WHERE
TABLE_SCHEMA = 'pclinic'
AND TABLE_NAME = table_name_;
END
Процедура A.14 - get_user_params - возвращает строку пользователя по его логину и паролю. Входные данные (pas VARCHAR(255), log VARCHAR(255)).
Тело процедуры:
BEGIN
select concat(fam,' ',`name`,' ',lastname) as user_, admin from users where password=password(pas) and login=log;
END
Процедура A.15 - service_nurce - возвращает перечень данные о количество пациентов, обслуженных каждой медсестрой по месяцам.
Входные данные отсутствуют.
Тело процедуры:
SELECT nurse_serv
, count(patient) AS count_patient
-- , month(date_off) AS month_
,
-- DATE_FORMAT(date_off,'%M') AS nm
monthname(date_off) AS nm
FROM
pclinic.patients_stat
WHERE
year(date_off) = 2014
GROUP BY
nm
, nurse_serv
ORDER BY
nurse_serv
, nm ASC;
END
Процедура A.16 - select1 - возвращает число пациентов, выписанных из стационара по месяцам. Входные данные (IN year_ SMALLINT).
Тело процедуры:
SELECT get_monthname(month(date_off)) as mon , count(patient) as pat
FROM
pclinic.patients_stat
WHERE
year(date_off) = year(now()) - 1
GROUP BY
(month(date_off));
END
Процедура A.27 - select3 - возвращает число различных стационарных пациентов было на каждого врача за год. Входные данные (IN `year` YEAR). Тело процедуры:
BEGIN
SELECT get_init(dd.surname,dd.name,dd.lastname) as doctor
, count(DISTINCT patient) as par_d
FROM
pclinic.patients_stat pt
LEFT JOIN pclinic.doctors dd
ON dd.id_doctor = pt.doctor
WHERE
year(date_off) = 2014
GROUP BY
doctor;
END
Процедура A.17 - select6 - возвращает статистические величины (среднее, максимальное, минимальное значения, количество) по пациентам за год . Входные данные отсутствуют. Тело процедуры:
BEGIN
-- в среднем поступивших в стац. в месяц
-- в среднем обслед. в месяц
SELECT round(avg(dd.pat)) `avg`
, max(dd.pat) `max`
, min(dd.pat) `min`
, count(dd.pat) `count`
FROM
(
SELECT count(patient) AS pat
FROM
pclinic.patients_stat
WHERE
year(date_on) = 2014
GROUP BY
month(date_on)) dd;
END
Процедура A.18 - fhrt14 - возвращает данные по выработке лаборатории за указанный период для медицинского учреждения. Входные данные (zaved INT, date_ot DATE, IN date_do DATE). Тело процедуры:
BEGIN
IF zaved = -1 THEN
SELECT count(*)
FROM
bolca.labs ll
WHERE
ll.`date` BETWEEN date_ot AND date_do;
ELSE
SELECT count(*)
FROM
bolca.labs ll
WHERE
ll.zaved = zaved
AND
ll.`date` BETWEEN date_ot AND date_do;
END IF;
END
Процедура A.19 - update_cur_rep - обеспечивает обновление отчета о количестве пациентов, принятых врачами в текущем месяце (у каждого врача). Входные данные (cur_month INT)
. Тело процедуры:
BEGIN DECLARE done, flag BOOLEAN DEFAULT FALSE;
DECLARE a, b INT;
DECLARE cur CURSOR FOR
SELECT d.id_doctor
, ifnull(ff.pat, 0) ppp
FROM
(
SELECT p.doctor doc
, p.date_on don
, count(p.patient) pat
FROM
pclinic.patients_stat p
WHERE
year(p.date_on) = 2015
AND month(p.date_on) = cur_month
GROUP BY
p.doctor) ff
RIGHT JOIN pclinic.doctors d
ON d.id_doctor = ff.doc;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
DECLARE CONTINUE HANDLER FOR 1329
SET done = TRUE;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
END;
SET a = NULL;
SET b = NULL;
SET done = FALSE;
IF cur_month = 0 THEN
SET cur_month = month(now());
END IF;
OPEN cur;
met:
REPEAT
FETCH cur INTO a, b;
IF NOT done THEN
UPDATE current_report
SET
cou_ = b, ost = 45 - b, date_ = curdate()
WHERE
id_d = a;
SET flag = TRUE;
END IF;
UNTIL done
END REPEAT;
CLOSE cur;
END
Функция A.19 - get_age- возвращает число полных лет по дате рождения. Входные данные (date_of_birth DATE). Результат smallint.
. Тело функции:
BEGIN
DECLARE res SMALLINT(6);
SET @curd := curdate();
SET res := year(@curd) - year(date_of_birth)-1;
-- if not ( MONTH(date_of_birth) <= month(@curd) and day(date_of_birth)<=day(@curd)) then
-- SET res=res-1;
-- end if;
if MONTH(date_of_birth) <= month(@curd) then
if day(date_of_birth)<=day(@curd) then SET res = res + 1;
end if;
end if;
RETURN res;
END
Функция A.19 - get_age_format- возвращает форматированное число полных лет по дате рождения. Входные данные (date_of_birth DATE). Результат varchar(15).
Тело функции:
BEGIN
declare res_str VARCHAR(15) DEFAULT '';
set @res:=(select get_age(date_of_birth));
if @res>10 then
set @res_a:=@res % 10 ; else set @res_a:=@res; end if;
if @res_a=1 then set res_str=' год'; else
if @res_a>1 and @res_a<5 then SET res_str = ' года';
else SET res_str = ' лет';
end if;end if;
RETURN (concat(@res,res_str));
END
Функция A.19 - get_init- возвращает фамилию с инициалами по полному ФИО. Входные данные (fam VARCHAR(255), nam VARCHAR(255), othch VARCHAR(255)).
Результат varchar(255).
Тело функции:
BEGIN
SET @res := concat(fam, ' ', substr(nam, 1, 1), '.', substr(othch, 1, 1), '.');
RETURN @res;
END
Функция A.19 - get_monthname- возвращает наименование месяца по-русски. Входные данные (month_ TINYINT).
Результат varchar(15).
Тело функции:
BEGIN
CASE month_
WHEN 1 THEN
RETURN 'Январь';
WHEN 2 THEN
RETURN 'Февраль';
WHEN 3 THEN
RETURN 'Март';
WHEN 4 THEN
RETURN 'Апрель';
WHEN 5 THEN
RETURN 'Май';
WHEN 6 THEN
RETURN 'Июнь';
WHEN 7 THEN
RETURN 'Июль';
WHEN 8 THEN
RETURN 'Август';
WHEN 9 THEN
RETURN 'Сентябрь';
WHEN 10 THEN
RETURN 'Октябрь';
WHEN 11 THEN
RETURN 'Ноябрь';
WHEN 12 THEN
RETURN 'Декабрь';
ELSE
RETURN 'Неизвестно';
END CASE;
END
Представление A.19 - v_doctors- Врачи.
Описание представления:
CREATE OR REPLACE
VIEW v_doctors
AS
select `doc`.`id_doctor` AS `id_doctor`,`doc`.`surname` AS `surname`,`doc`.`name` AS `name`,`doc`.`lastname` AS `lastname`,`uu`.`unit` AS `unit`,`pp`.`position_name` AS `position_name`,`pp`.`salary` AS `salary`,`doc`.`date_on` AS `date_on` from ((`doctors` `doc` left join `s_positions` `pp` on((`pp`.`id_position` = `doc`.`position`))) left join `s_units` `uu` on((`uu`.`id_unit` = `doc`.`unit`))) order by `doc`.`surname`;
Представление A.19 - v_examination_resoults- Результаты обследования.
Описание представления:
CREATE OR REPLACE
VIEW v_examination_resoults
AS
select `er`.`id_exr` AS `id_exr`,`get_init`(`p`.`surname`,`p`.`name`,`p`.`lastname`) AS `patien`,year(`p`.`date_of_birth`) AS `year_of_birth`,`get_age`(`p`.`date_of_birth`) AS `age`,`er`.`date_` AS `date_`,`sd`.`diagnosis_name` AS `diagnosis_name`,`d`.`surname` AS `id_doctor`,`er`.`stat` AS `stat` from (((`examination_resoults` `er` left join `s_diagnosis` `sd` on((`sd`.`id_diag` = `er`.`diagnosis`))) left join `patients` `p` on((`p`.`id_patient` = `er`.`patient`))) left join `doctors` `d` on((`d`.`id_doctor` = `er`.`doctor`)));
Представление A.19 - v_holidays - Отпуска.
Описание представления:
CREATE OR REPLACE
VIEW v_holidays
AS
select `hh`.`id_holiday` AS `id_holiday`,concat(`dd`.`surname`,' ',`dd`.`name`,' ',`dd`.`lastname`) AS `doc`,`hh`.`date_begin` AS `date_begin`,`hh`.`date_end` AS `date_end` from (`holiday` `hh` left join `doctors` `dd` on((`dd`.`id_doctor` = `hh`.`doctor`)));
Представление A.19 - v_patients_stat- Пациенты стационара.
Описание представления:
CREATE OR REPLACE
VIEW v_patients_stat
AS
select `pst`.`id_pat_st` AS `id_pat_st`,concat(`pa`.`surname`,' ',`pa`.`name`,' ',`pa`.`lastname`) AS `patient`,year(`pa`.`date_of_birth`) AS `year_of_birth`,`get_init`(`doc`.`surname`,`doc`.`name`,`doc`.`lastname`) AS `doctor`,`di`.`diagnosis_name` AS `diagnos`,`pst`.`date_on` AS `date_on`,`pst`.`date_off` AS `date_off`,`pst`.`nurse_serv` AS `nurse_serv` from (((`patients_stat` `pst` left join `patients` `pa` on((`pa`.`id_patient` = `pst`.`patient`))) left join `doctors` `doc` on((`doc`.`id_doctor` = `pst`.`doctor`))) left join `s_diagnosis` `di` on((`di`.`id_diag` = `pst`.`diagnosis`)));
Представление A.19 - v_sick_leave_certificates- Больничные листы.
Описание представления:
CREATE OR REPLACE
VIEW v_sick_leave_certificates
AS
select `slc`.`id_slc` AS `id_slc`,`slc`.`patient_name` AS `patient_name`,`dd`.`diagnosis_name` AS `diagn`,`slc`.`date_begin` AS `date_begin`,`slc`.`date_end` AS `date_end`,((`slc`.`date_end` - `slc`.`date_begin`) + 1) AS `days`,`slc`.`doctor_name` AS `doctor_name` from (`sick_leave_certificates` `slc` left join `s_diagnosis` `dd` on((`dd`.`id_diag` = `slc`.`diagnosis`)));
Триггер A.19 - update_patient_stat - Выставляет значение "число дней проведенных в стационаре" при выписке пациента из стационара.
Описание триггера:
CREATE
TRIGGER update_patient_stat
BEFORE UPDATE
ON patients_stat
FOR EACH ROW
BEGIN
SET @new_day = dayofyear(old.date_on);
SET @new_day2 = dayofyear(new.date_off);
IF @new_dayIS is NOT NULL and NEW.period_days IS NULL THEN
SET NEW.period_days = (@new_day2 - @new_day+1);
END IF;
END
Триггер A.19 - set_password - Шифрует пароль пользователя в БД(при добавлении нового пользователя).
Описание триггера:
CREATE
TRIGGER pclinic.set_password
BEFORE INSERT
ON pclinic.users
FOR EACH ROW
BEGIN
SET NEW.password = password(NEW.password);
END
ПРИЛОЖЕНИЕ Б. СХЕМА БД Поликлиники
Размещено на Allbest.ru
...Подобные документы
Разработка информационной системы с применением динамических структур данных. Назначение и область применения разрабатываемой программы по регистрации больных в поликлинике. Структурная схема фрагмента информационной системы, таблица имен и списков.
курсовая работа [325,6 K], добавлен 05.12.2013Разработка информационной базы данных для поликлиники, которая поможет пользователю найти информацию о любом сотруднике или пациенте. Функциональная структура предметной области. Диаграмма потоков данных (DFD-диаграмма). Поддержка целостности данных.
курсовая работа [6,7 M], добавлен 17.09.2014Разработка информационной системы и базы данных магазина "Автозапчасти". Выбор технических средств и программной реализации задачи АЗ-01. Составление алгоритма, программы, руководства пользователя и примера, демонстрирующего корректность решения задачи.
курсовая работа [2,2 M], добавлен 19.10.2012Анализ предметной области. Обзор программ-аналогов. Рассмотрение средств решения поставленной задачи. Проектирование структуры программы и базовых алгоритмов. Изучение руководства программиста и пользователя. Проектирование структуры базы данных.
курсовая работа [1,0 M], добавлен 14.11.2017Анализ предметной области, главных функций организации. Разработка макета внутренней структуры программного обеспечения информационной системы в виде диаграммы классов. Составление схемы базы данных. Разработка интерфейса и руководства пользователя.
курсовая работа [866,3 K], добавлен 02.06.2015Разработка программной системы для регистратуры поликлиники; создание базы данных. Описание предметной области: сведения о врачах, пациентах, учет обращений, регистрация обследований и назначенных препаратов. Содержимое таблиц, пользовательский интерфейс.
курсовая работа [6,2 M], добавлен 30.07.2012Разработка информационной системы ресторана, определение ее границ для реализации базы данных. Перечень запросов, отчетов и операций по вводу информации в информационной системе "Ресторан". Проектирование базы данных, выбор средств ее реализации.
курсовая работа [7,6 M], добавлен 27.04.2011Анализ проектирования баз данных на примере построения программы ведения информационной системы картотеки ГИБДД. Основные функции базы данных. Обоснование выбора технологий проектирования и реализации базы данных. Описание информационного обеспечения.
курсовая работа [753,0 K], добавлен 27.08.2012Разработка логической и физической моделей базы данных предприятия и описание атрибутов. Порядок создания справочников и реквизитов базы данных на основе программы "1С:Предприятие 8.2", назначение связей таблиц. Пример сгенерированных SQL-кодов.
курсовая работа [2,7 M], добавлен 02.12.2015Определение автоматизированных информационных систем. Обоснование выбора среды разработки информационной системы. Создание запросов для выбора информации. Логическая и физическая структура реляционной базы данных. Разработка интерфейса пользователя.
курсовая работа [2,1 M], добавлен 16.04.2017Выбор средств разработки базы данных для информационного функционирования аэропорта. Выделение и нормализация сущностей. Логическая схема и физическая структура базы данных. Спецификация и тестирование функций, процедур, триггеров, представлений.
курсовая работа [1,5 M], добавлен 07.06.2013Особенности проектирования программы на языке С++ для обработки данных из таблиц базы данных. Основные функции программы, создание концептуальной модели базы данных и диаграммы классов, разработка интерфейса пользователя и запросов к базе данных.
курсовая работа [2,1 M], добавлен 08.06.2012Назначение программного модуля (базы данных). Разработка информационной базы данных для колледжа. Поиск пользователями информации о преподавателях и дисциплинах. Анализ входной и выходной информации. Разработка алгоритма работы программы-приложения.
реферат [513,1 K], добавлен 22.10.2012Разработка программного продукта - базы данных "Экскурсия" в интегрированной среде программирования C++ Builder 6. Определение порядка просмотра данных базы, их редактирования и удаления. Особенности руководства пользователя и общего интерфейса программы.
курсовая работа [2,4 M], добавлен 03.11.2013Возможности извлечения информации из баз данных. Программы для создания и обработки базы данных и создания пользовательского интерфейса. Обоснование выбора программных средств для реализации. Создание базы данных, интерфейса и базы данных к интерфейсу.
курсовая работа [2,9 M], добавлен 24.03.2023Данные предметной области, содержащие информацию, необходимую для разработки автоматизированного рабочего места. Выбор средств разработки. Структура базы данных. Вывод данных, статистика распределения нагрузки. Разработка руководства оператора.
дипломная работа [8,4 M], добавлен 19.10.2012Последовательность разработки "Базы данных ГОСТИНИЦА" в среде Visual Studio 2010 C#. Обоснование выбора средства программирования. Требования к аппаратному обеспечению. Алгоритм решения задачи, функциональное назначение. Руководство пользователя.
курсовая работа [2,0 M], добавлен 07.07.2012Разработка информационной программы для риэлтерской конторы по учету клиентской базы и базы квартир с фиксированием всех операций по купле-продаже. Описание структуры базы данных. Создание запросов и отчетов. Инструкция по эксплуатации, текст программы.
курсовая работа [2,4 M], добавлен 07.09.2012Назначение программы "Учёт пациентов" и её подсистемы. Диаграмма классов предметной области, диаграмма последовательностей, описание автоматизируемых функций и характеристика функциональной структуры. Физическая схема и описание таблиц базы данных.
дипломная работа [3,3 M], добавлен 15.11.2016Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.
курсовая работа [706,2 K], добавлен 17.06.2012