Разработка учебного проекта "База данных поликлиники"

Назначение и задачи создания информационной системы "База данных поликлиники". Перечень функций, реализуемых программой. Обоснование выбора средств разработки программы. Разработка программы, структуры информационной базы и руководства пользователя.

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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.