Телефонный справочник поликлиники

 
















Телефонный справочник поликлиники


1. Проектирование ИС «телефонный справочник поликлиники»


1.1 Системный анализ


В рамках данного курсового проекта разрабатывается информационная система «Телефонный справочник поликлиники». Данная система должна осуществлять автоматизированный процесс о поступивших пациентах с номерами телефонов и врачей с номерами телефонов.

Данные об пациентах, заносимых в базу данных информационной системы должны соответствовать следующим параметрам:

·id;

·Ф.И.О.;

·Возраст;

·Лечащий врач;

·Город;

·Телефон;

·Диагноз.

Данные о докторах должны соответствовать следующим параметрам:

·фамилия имя отчество;

·возраст;

·должность;

·город;

·телефон.

Информация о городах должна соотвествовать следующим параметрам:

·id;

·название города;

·код телефона города;

Данные о должностях должны характеризоваться следующими параметрами:

·id;

·название должности;

Данные диагноза должны характеризоваться следующими параметрами:

·id;

·диагноз.

С информационной системой «Телефонный справочник поликлиники» должны иметь возможность работать сотрудники поликлиники и пациенты.


1.2 Инфологическое проектирование


В реляционной модели все данные представляются как факты о сущностях и связях. Между сущностями определяются функциональные связи.

Сущность - это множество индивидуальных объектов - экземпляров, причем все эти объекты являются различными.

Связь - это функциональная зависимость между сущностями.

Каждая сущность обладает атрибутами.

Атрибут - это свойство объекта, характеризующее его экземпляр.

Общепринятым видом графического изображения реляционной модели данных является ER-диаграмма. На такой диаграмме сущности (таблицы) изображаются прямоугольниками, возможно, соединенными между собой линиями (связями). Такое графическое представление облегчает восприятие структуры базы данных по сравнению с текстовым описанием.- CASE-средство для проектирования и документирования баз данных, которое позволяет создавать, документировать и сопровождать базы данных, хранилища и витрины данных. Модели данных помогают визуализировать структуру данных, обеспечивая эффективный процесс организации, управления и администрирования таких аспектов деятельности предприятия, как уровень сложности данных, технологий баз данных и среды развертывания.ERwin позволяет управлять данными в процессе корпоративных изменений, а также в условиях стремительно изменяющихся технологий.позволяет наглядно отображать сложные структуры данных. Удобная в использовании графическая среда упрощает разработку базы данных и автоматизирует множество трудоемких задач, уменьшая сроки создания высококачественных и высокопроизводительных транзакционных баз данных и хранилищ данных.

Диаграмма ERwin строится из трех основных блоков - сущностей, атрибутов и связей. Если рассматривать диаграмму как графическое представление правил предметной области, то сущности и атрибуты являются существительными, а связи - глаголами.

В ERwin существуют два уровня представления и моделирования - логический и физический. Логический уровень означает прямое отображение фактов из реальной жизни. На логическом уровне не рассматривается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц.

Целевая СУБД, имена объектов и типы данных, индексы составляют второй (физический) уровень модели ERwin. ERwin предоставляет возможности создавать и управлять этими двумя различными уровнями представления одной диаграммы (модели), равно как и иметь много вариантов отображения на каждом уровне.

На диаграмме сущность изображается прямоугольником. В зависимости от режима представления диаграммы прямоугольник может содержать имя сущности, ее описание, список ее атрибутов и другие сведения. Горизонтальная линия прямоугольника разделяет атрибуты сущности на два набора - атрибуты, составляющие первичный ключ в верхней части, и прочие (не входящие в первичных ключ) - в нижней части.

Сущность - это логическое понятие. Сущности соответствует таблица в реальной СУБД. В ERwin сущность визуально представляет три основных вида информации:

  • атрибуты, составляющие первичный ключ;
  • не ключевые атрибуты;
  • тип сущности (независимая / зависимая).

Сущность должна обладать атрибутом или комбинацией атрибутов, чьи значения однозначно определяют каждый экземпляр сущности. Эти атрибуты образуют первичный ключ сущности.

Правила определения атрибутов:

  1. Каждый атрибут каждой сущности обладает уникальным именем.
  2. Сущность может обладать любым количеством атрибутов.
  3. При идентифицирующем отношении сущность «потомок» наследует атрибут и / или атрибуты, составляющие первичный ключ сущности «родителя».

На основе выше описанных данных, с помощью программного CASE средства ERwin построена модель, представленная на рисунке 1.


Рисунок 1. Логическая модель БД «телефонный справочник поликлиники»


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

Рисунок 2. Физическая модель БД «телефонный справочник поликлиники»


2. Разработка программного обеспечения


2.1 Программирование на стороне сервера SQL


2.1.1 Разработка таблиц удаленной базы данных

Для создания базы данных используется утилита IBExpert. Чтобы создать новую базу данных, нужно запустить утилиту IBExpert и выбрать в меню Базы данных пункт «Создать базу». Затем требуется установить соединение с сервером, как показано на рисунке 3. В поле Файл БД указываются имя файла базы данных и путь до него. В поле Размер страницы БД указывается количество страниц, содержащихся в файле базы данных.


Рисунок 3. Создание базы данных


После того как создана база данных, ее необходимо зарегистрировать. Окно регистрации базы данных «Телефонный справочник поликлиники» представлено на рисунке 4.


Рисунок 4. Регистрация базы данных


Домен - это глобальное в рамках данной базы данных определение поля, которое может применяться в операторах создания и модификации таблиц вместо типа данных для поля[4].

Целесообразно применение доменов, если множество таблиц базы данных содержит идентичное описание полей.

Прежде чем приступить к созданию доменов, нужно описать типы полей базы данных на основе ее логической и физической моделей, представленных на рисунке 1 и рисунке 2. Типы данных полей таблиц базы данных «Телефонный справочник поликлиники» представлены в таблице 1.


Таблица 1. Типы данных полей таблиц базы данных «Телефонный справочник поликлиники»

Имя таблицыИмя поляТипДлина поляД.Ч.Имя доменаDIAGNOZIDSMALLINTIDNAMEVARCHAR30NAMEDOLZHNOSTIDSMALLINTIDNAMEVARCHAR30NAMEGORODIDSMALLINTIDNAMEVARCHAR30NAMEKOD_GORODAVARCHAR20TELPACIENTIDSMALLINTIDFIOVARCHAR30NAMEVOZRASTVARCHAR20VREMYAID_VRACHASMALLINTIDID_GORODSMALLINTIDTELEFONVARCHAR20TELID_DIAGNOZSMALLINTIDVRACHIIDSMALLINTIDFIOVARCHAR30NAMEVOZRASTVARCHAR20VREMYAID_DOLZHNOSTSMALLINTIDID_GORODSMALLINTIDTELEFONVARCHAR20TEL

На основе данных таблицы 1, составлена таблица 2, в которой представлены типы доменов базы данных «Телефонный справочник поликлиники»


Таблица 2. Типы доменов базы данных «Телефонный справочник поликлиники»

Имя доменаТипДлинаDefaultCheckIDSMALLINT>0NAMEVARCHAR30нетADRESVARCHAR20нетTELVARCHAR20нетVREMYAVARCHAR20нет

После этого можно приступить к программированию доменов. Результат создания домена D_PRICE базы данных «Телефонный справочник поликлиники» с использованием утилиты IBExpert показан на рисунке 5.


Рисунок 5. Создание домена VREMYA с использованием утилиты IBExpert

Аналогичным образом создаются остальные домены, представленные в таблице 2. Все домены базы данных «Телефонный справочник поликлиники» показаны на рисунке 6.


Рисунок. 6. Домены базы данных «Телефонный справочник поликлиники»


Всего в базе данных будет создано пять таблиц. Таблицы имеют связи, создаваемые с помощью первичных и вторичных ключевых полей.

Средствами IBExpert создается таблица PACIENT, в которой будут храниться данные пациентах. SQL-скрипт на создание таблицы имеет вид:

Индексы существенно ускоряют процесс поиска и упорядочивание записей таблицы [1].

Сервер Firebird автоматически создает уникальный индекс при создании ограничений PRIMARY KEY и UNIQUE для столбца или группы столбцов.

На рисунке 7 приведен индекс PK_PACIENT в таблице PACIENT по полю ID_VRACHA для базы данных «Телефонный справочник поликлиники» созданный с использованием утилиты IBExpert.


Рисунок 7. Индекс PK_PACIENT в таблице PACIENT по полю ID_VRACHA

Генератор - это специальный объект базы данных, который генерирует уникальные последовательные числа [3].

Генераторы в БД «Телефонный справочник поликлиники» будут использоваться для автоматического заполнения поля (полей), входящих в первичный ключ.

На рисунке 8 приведены все генераторы БД «Телефонный справочник поликлиники».


Рисунок 8. Генераторы БД «Телефонный справочник поликлиники»


В базе данных будут использованы триггеры before insert, которые предназначены для реализации автоинкрементных первичных ключей. На рисунке 9 показано как создается триггер для организации автоинкрементного поля ID в таблице PACIENT с использование утилиты IBExpert.


Рисунок 9. Создание триггера в таблице PACIENT с использование утилиты IBExpert


2.1.2 Разработка бизнес-логики на стороне SQL-сервера

SQL-скрипт на cоздание представления VIEW_PACIENT для просмотра данных таблицы, выводятся два поля: ID_VRACHA, ID_GOROD, ID_DIAGNOZ:

CREATE VIEW VIEW_PACIENT (,,,,_,,_)pacient.id, pacient.fio, pacient.vozrast, vrachi.fio, gorod.name, pacient.telefon, diagnoz.namepacient, vrachi, gorod, diagnozpacient.id_vracha=vrachi.id and pacient.id_gorod=gorod.id and pacient.id_diagnoz=diagnoz.id.


Хранимая процедура представляет собой подпрограмму, расположенную на сервере и вызываемую из приложения клиента[6].

Процедуры необходимые в БД представлены в таблице 3.


Таблица 3. Название и назначение хранимых процедур БД «Железнодорожный вокзал»

Название процедурыНазначениеADD_GORODДобавление записи о городеADD_DOLZHNOSTДобавление записи о должностиADD_DIAGNOZДобавление записи о диагнозеADD_VRACHIДобавление записи о врачеADD_PACIENTДобавление записи о пациентеDEL_ GORODУдаление записи о городеDEL_ DOLZHNOSTУдаление записи о должностиDEL_ DIAGNOZУдаление записи о диагнозеDEL_ VRACHIУдаление записи о врачеDEL_ PACIENTУдаление записи о пациентеUPDATE_ GORODОбновление записи о городеUPDATE_ DOLZHNOSTОбновление записи о должностиUPDATE_ DIAGNOZОбновление записи о диагнозеUPDATE_ VRACHIОбновление записи о врачеUPDATE_ PACIENTОбновление записи о пациенте

Исключения представляют собой именованное сообщение об ошибке. В базе данных «Телефонный справочник поликлиники» предусмотрено одна исключительная ситуация, которые продемонстрированы в таблице на рисунке 10.


Рисунок 10. Исключения БД «Телефонный справочник поликлиники»


2.2 Программирование на стороне клиента


.2.1 Разработка windows-приложения

Создадим новый проект, затем создадим DataModule (по умолчанию DataModule2) на котором будем размещать все невидимые компоненты для доступа и работы с БД. Далее поместим на форму компонент IBDatabase1 и IBTransaction1, настроим компонент IBDatabase1 как показано на рисунке (Рис. 11), но это в случае если база данных располагается на локальном компьютере.


Рис. 11. Окно настройки соединения БД на локальном компьютере


В случае если БД располагается на удаленном сервере, то настройка будет другая (Рис. 12):


Рис. 12. Окно настройки соединения с БД на сервере


.2.2 Создание интерфейса приложения

Часть разработанного интерфейса и выполнение различных действий при работе с БД будем рассматривать на примере таблицы «Пациент» так как, интерфейс остальных таблиц а так же действия над ними одинаковые.

Создадим интерфейс по своему вкусу, но сточки зрения хорошей и удобной функциональности (Рис. 13).


Рис. 13. Окно приложения с таблицей Пациент


2.2.3 Получение доступа к данным

Для того чтобы получить доступ к таблице поместим на DataModule2 DBGrid, IBQuery, DataSource.

Настроим следующие свойства у компонентов:


IBQuery2:

DataBase=IBDataBase1;>ttViev=true;= VIEW_PACIENT;=true.

DataSource4:

DataSet= IBTable4.

DBGrid4:

DataSource= DataModule2->DataSource4


Рис. 14. Окно приложения


2.2.4 Добавление информации

Добавление реализуем через созданную ранее хранимую процедуру на добавление: ADD_PACIENT, для этого поместим на DataModule2 компонент IBStoredProc1 и настроим у него следующие свойства:

DataBase=IBDatabase1;= ADD_PACIENT.

Для удобства добавления создадим все компоненты на главной форме (Рис. 15).


Рис. 15 Окно добавления информации в таблицу «Пациент»


В процессе работы мы заполняем все данные в поля (Рис. 16), какой пациент и нажимаем кнопку «Добавить», запись будет добавлена в таблицу БД.


Рис. 16. Окно добавления записей в таблицу «Пациент»


Теперь посмотрим, что новая запись была добавлена (Рис. 17):


Рис. 17. Окно приложения. Информация добавлена в табилцу


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

Обновление информации реализуем так же через хранимую процедуру созданную ранее, процедуру на обновление, для этого поместим на DataModule2 компонент IBStoredProc2 и настроим у него следующие свойства:

DataBase=IBDatabase1;= UPD_PACIENT.

Для удобства обновления создадим на главной форме все компоненты, чтобы их было удобней редактировать (Рис. 18).


Рис. 18. Окно обновления информации в таблице Пациент


Затем в обработчике события OnClick кнопки обновить пропишем следующий код:


DataModule2->IBStoredProc11->ParamByName («ID»)->AsString=Form1->Edit23->Text;->IBStoredProc11->ParamByName («FIO»)->AsString=Form1->Edit20->Text;->IBStoredProc11->ParamByName («VOZRAST»)->AsString=Form1->Edit21->Text;->IBStoredProc11->ParamByName («ID_VRACHA»)->AsString=Form1->DBEdit2->Text;->IBStoredProc11->ParamByName («ID_GOROD»)->AsString=Form1->DBEdit3->Text;->IBStoredProc11->ParamByName («TELEFON»)->AsString=Form1->Edit22->Text;->IBStoredProc11->ParamByName («ID_DIAGNOZ»)->AsString=Form1->DBEdit5->Text;->IBStoredProc11->Prepare();->IBStoredProc11->ExecProc();->IBTable4->Active=false;->IBTable4->Active=true;


Теперь после того как нужная запись отредактирована, нажимаем кнопку обновить и получаем удовлетворяющий нас результат, то есть запись обновлена (Рис. 19).

Рис. 19. Окно обновления записи в таблице Пациент. Запись обновлена


2.2.6 Удаление информации

Для удаления информации мы будем использовать запрос на удаление DEL_PACIENT для этого помещаем в датамодуль компонент IBStoredProc3 и указываем процедуру использования базы данных.

В обработчике события OnClick кнопки удалить пропишеммследующий код:


DataModule2->IBStoredProc12->ParamByName («ID»)->AsString=Form1->Edit27->Text;->IBStoredProc12->Prepare();->IBStoredProc12->ExecProc();->IBTable4->Active=false;->IBTable4->Active=true;

Рассмотрим пример удаления.

Вводим код Пациента (Рис. 20).


Рис. 20. Удаление записи из таблицы Пациент. Выделение записи

Нажимаем кнопку удалить и видим результат, запись удалена (Рис. 21).


Рис. 21. Окно приложения. Запись удалена


2.2.7 Поиск информации

Для реализации поиска, поместим на форму компонент Edit. В обработчике события OnChange пропишем следующий код:

TLocateOptions LO;->IBTable4->Locate («FIO», Edit24->Text, LO<<loPartialKey<< loCaseInsensitive);

Результат следующий: (Рис. 22):


Рис. 22. Окно приложения. Поиск информации.


2.2.8 Фильтрация информации

Для реализации фильтрации, поместим на форму два компонента Edit (для задания диапазона фильтрации данных) и компонент Button чтобы подать запрос для фильтрации. В обработчике события OnClick компонента Button (Фильтровать), пропишем следующий код:

DataModule2->IBTable4->Active=false;->IBTable4->Filtered=false;->IBTable4->Filter=«FIO>=' «+Edit25->Text+» 'and FIO<=' «+Edit26->Text+» '»;2->IBTable4->Filtered=true;


Вся фильтрация данных будет производиться по полю «Ф.И.О.» и будут показаны те записи диапазон которых был введен (Рис. 23).


Рис. 23. Окно приложения. Фильтрация данных


После ввода диапазона показываемых записей от буквы «А» до «Я», нажимаем на кнопку «Фильтровать» и программа показывает необходимые записижно, чтобы вернуться в исходный вид, нужно конечное значения поставить букву «Я», соответственно будут показаны все записи этого диапазона (все записи таблицы).


2.2.9 Сортировка данных

Для реализации сортировки в обработчике события OnTitleClick компонента DBGrid пропишем следующий код:

DataModule2->IBTable4->Active=false;->IBTable4->IndexFieldNames=Column->FieldName;

DataModule2->IBTable4->Active=true;

По сути этот код будет передавать в свойство IndexFieldNames компонента IBTable4 название столбцов (физическое) и по ним будет произведена сортировка.


Рис. 24. Окно приложения. Сортировка данных


2.2.2 Разработка web-приложения

Чтобы начать проектирование приложения, необходимо создать новый проект из приложений php на настроенном топсервере.

Создадим файл db.php (рисунок 25).


Рис. 25. Соединение с базой данных.


2.3.2 Получение доступа к данным (отображение данных)

Пример проектирования Web - приложения для работы с БД с использованием технологии php разберём на примере таблицы Пациент.

Изначально у нас открывается index.html слева в меню отображаются ссылки на сущности:


Рис. 26. Главная страница Web - приложения «Телефонный справочник поликилинки»


Для того, чтобы отобразить сущность на странице прописываем определённый код в файле view_pacient

В результате получается следующее отображение:


Рис. 27. Отображения таблицы «Пациент» в приложении


2.3.3 Добавление информации

Добавление будет осуществляться через созданную ранее хранимую процедуру: ADD_PACIENT. Для этого вызовим процедуру в коде при помощи команды EXECUTE PROCEDURE.

Создадим html приложение форму для ввода (рисунок 28).


Рис. 28. Форма добавления информации в таблицу «Пациент»


Рассмотрим как работает вставка. Сначала щелкаем по кнопке «Добавить» перед нами появляется форма, которую мы заполняем (Рис. 29).

Рис. 29. Заполнение формы для добавления информации в таблицу «Пациент»


Нажимаем кнопку «Добавить запись» и просматриваем результат (Рис. 30).


Рис. 30. Результат добавления записи в таблицу «Пациент»


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

Обновление информации мы будет осуществляться так же через хранимую процедуру UPD_PACIENT

Для ввода новой информации создадим форму в html файле, которая будет вызывать запрос на обновление. После выполнения программы она выглядит следующим образом:


Рис. 31. Форма обновления информации в таблицу «Пациент»


Рассмотрим как работает процесс обновления информации.

Вводим новую информацию и обязательно указываем код записи (ID) которую нужно обновить (Рис. 32).


Рис. 32. Заполнение формы для обновления информации в таблице «Ученик»


Нажимаем кнопку «Обновить запись» и видим результат (Рис. 33).


Рис. 33. Результат обновления записи в таблице «Пациент»

2.3.5 Удаление информации

Для реализации удаления информации используем процедуру на удаление DEL_UCHENIK

Для удаления строки содержащей информацию, создадим форму в html файле. После выполнения программы она выглядит следующим образом (Рис. 34):


Рис. 34. Форма ввода номера записи для ее удаления из таблицы «Пациент»


Рассмотрим как работает процесс удаления информации. Чтобы удалить какую либо строку из таблицы, нужно ввести ее код (идентификатор) (Рис. 35).


Рис. 35. Ввод номера записи для удаления.


После ввода нажимаем кнопку «Удалить» и видим результат, строка удалена (Рис. 36).


Рис. 36. Запись из таблицы «Пациент» удалена


.3.6 Сортировка информации

Для реализации сортировки создадим php приложение с простым sql запросом на сортировку ORDER BY


Рис. 37. Ссылка сортировки записей в таблице «Пациент»


Заключение


В результате выполнения курсового проектирования был разработан программный код для реализации ИС «Телефонный справочник поликлиники». Были закреплены и углублены теоретические знания и приобретены практические навыки в области разработки информационной системы, основанной на клиент - серверной технологии, а так же изучены некоторые аспекты объектно-ориентированного программирования языка C++.

При оформлении курсовой работы были получены навыки оформления программной документации в соответствии с требованиями БелГУ, а также большой практический опыт работы в Borland C++ Builder 6, РСУБД Firebird, InterBase eXpress (IBX). Теоретические сведения были закреплены практическими занятиями.


Список источников

телефонный справочник сервер поликлиника

1.Архангельский А.Я. Программирование в С++Builder 6. - М.: БИНОМ, 2005. -1152 с., ил.

2.Борри Х. Firebird: руководство разработчика баз данных: Пер. с англ. - СПб.: БХВ-Петербург, 2006, - 1104 с.: ил.

.Кузьменко Д. Генераторы и их использование. - М, 2005.

4.Послед Б.С. Borland C++ Builder 6. Разработка приложений баз данных - СПб.: ООО «ДиаСофтЮП», 2003 -320 с.

5.Сорокин А.В. Разработка баз данных. - СПб.: Питер, 2005 - 477 с: ил.

6.Хомоненко А.Д. Работа с базами данных С++Builder. - СПб.:BHV - Санкт - Петербург, 2005. - 400 с., ил.



Телефонный справочник поликлиники 1. Проектирование ИС «телефонный справочник поликлиник

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ