Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка приложения справочной службы регистратуры поликлиники

Содержание:

Введение

Тема курсовой работы: «Разработка приложения справочной службы регистратуры поликлиники».

Цель курсовой работы – разработать программное приложение справочной службы «Регистратура поликлиники» в среде объектно-ориентированного программирования Embarcadero RAD Studio XE8.

Данная цель реализуется посредством решения следующих задач:

  • провести моделирование предметной области;
  • выполнить проектирование структуры приложения;
  • выполнить проектирование структуры базы данных;
  • выбрать средства и методы разработки;
  • разработать базу данных приложения;
  • разработать интерфейс приложения;
  • провести тестирование приложения.

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

В настоящее время работа с пациентами в регистратуре поликлиники ведется в ручном режиме, что приводит к потере времени и ненадлежащему контролю.

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

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

Представленная работа состоит из двух глав. В первой главе «Проектирование приложения «Регистратура поликлиники» выполняется моделирование предметной области, проектирование структуры приложения и проектирование структуры базы данных.

Во второй главе «Разработка приложения «Регистратура поликлиники» осуществляется выбор средств и методов разработки, выполняется разработка базы данных, разработка интерфейса приложения и тестирование разработанного программного приложения.

Глава 1. Проектирование приложения «Регистратура поликлиники»

1.1 Моделирование предметной области

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

В графическом виде бизнес-процесс приема пациентов в поликлинике представлен на рисунке 1.

Рисунок 1. Схема бизнес-процесса приема пациентов в поликлинике

Программное приложение «Регистратура поликлиники» предназначено для автоматизации работы регистратуры поликлиники. Приложение позволяет автоматизировать следующие процессы:

  1. Ввод первичной информации с использованием простых и понятных пользователю экранных форм.
  2. Составления отчетов, необходимых пользователю.
  3. Вывод отчетов, необходимых пользователю в удобном для него виде.
  4. Поддержки не только вывода отчетов на экран, но и возможности печати.

Целью создания приложения является:

    • автоматизация организации учета в регистратуре поликлиники;
    • возможность хранения данных о клиентах;
    • сократить временные затраты на обработку и получение информации.

Разрабатываемое приложение решает следующие проблемы:

    1. Автоматизация ввода, контроля и загрузки данных первичных документов в базу данных с использованием экранных форм.
    2. Ведение файлов с условно-постоянной информацией в базе данных.
    3. Выполнение расчетов и выдача результативных документов.

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

      • возможность вносить данные новых клиентов поликлиники;
      • возможность изменять данные клиентов;
      • вести учет выдачи талонов на прием к узким специалистам.

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

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

2. Кадровые данные на врачей должны включать анкетные данные и данные об их специализации.

3. Кадровые данные на клиентов должны включать анкетные данные, данные о местожительстве и сведения о состоянии здоровья.

4. Посещение терапевта осуществляется в порядке «живой очереди» в поликлинике, согласно расписания работы участковых терапевтов, или вызова врача на дом, в случае тяжелого состояния.

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

6. Приложение «Регистратура поликлиники» используется в автономном режиме на компьютере регистратора, в дальнейшем планируется подключение приложения к общей информационной системе поликлиники, в качестве рабочего места регистратора.

1.2 Проектирование структуры приложения

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

База данных будет хранить все пользовательские данные: данные всех таблиц и справочников [6].

Структуру можно разделить на несколько взаимосвязанных объектов:

  • блок авторизации обеспечивает защиту от несанкционированного доступа;
  • главная форма позволяет попасть в блоки «Формы» и «Отчеты»;
  • форма «Формы» позволяет попасть в формы «Талон», «График работы», «Карточка», «Справочники»;
  • форма «Карточка» предназначена для заполнения карточки пациента поликлиники и перехода в форму «Карточки пациентов»;
  • форма «Карточки пациентов» предназначена для отображения данных карточек всех пациентов;
  • форма «Талон» предназначена для ввода данных талона на прием;
  • форма «График работы» предназначена для просмотра и заполнения графика работы всех врачей поликлиники;
  • форма «Справочники» предназначена для просмотра или заполнения данных всех справочников: «Врачи», «Часы приема», «Время приема», «Специализация», «Номер стеллажа», «Номер кабинета»;
  • форма «Отчеты» позволяет выбрать нужный отчет: «Врачи», «Талоны», «Графики работы».

Рисунок 2. Структура приложения «Регистратура поликлиники»

Назначение форм справочников:

  • форма «Врачи» содержит данные на всех врачей поликлиники;
  • форма «Часы приема» содержит данные о приемных часах врача;
  • форма «Время приема» содержит данные о часах приема по дням недели;
  • форма «Специализация» содержит данные о специальности врача;
  • форма «Номер стеллажа» содержит данные о буквенном обозначении стеллажа, на котором хранится бумажная карточка пациента;
  • форма «Номер кабинета» хранит данные о номерах кабинетов врачей.

Следующий шаг проектирования – это разработка схемы алгоритма работы интерфейса приложения [7]. Алгоритм представлен на рисунке 3.

Алгоритм работы приложения можно разделить на пять отдельных алгоритмов по сфере деятельности: выбор производится на Главной форме, после авторизации.

Алгоритм «Справочники» начинается с выбора справочника или возврата на Главную страницу. Если справочник выбран и просмотрен, то для каждого справочника нужно вновь осуществить выбор: возврат на Главную форму или редактирование справочника. После редактирования можно вернуться на Главную форму без сохранения или сохранить внесенные изменения. После сохранения можно вернуться на Главную форму или выйти из программы.

Алгоритм «Карточка» начинается с выбора: заполнение новой карточки или просмотр всех карточек пациентов. При заполнении карточки нового пациента, выбирается форма «Карточка» и заполняются данные, затем можно выбрать: вернуться на Главную форму без сохранения или сохранить. После сохранения также осуществляется выбор: выход из алгоритма «Карточка» или просмотр новой карточки в списке всех карточек.

Алгоритм «Талон» начинается с заполнения формы талона, затем можно выбрать: вернуться на Главную форму без сохранения или сохранить талон. После сохранения можно вернуться на Главную форму или выйти.

Алгоритм «График работы» начинается с заполнения формы графика работы, затем можно выбрать: вернуться на Главную форму без сохранения или сохранить график. После сохранения можно вернуться на Главную форму или выйти из программы.

Алгоритм «Отчеты» позволяет выбрать нужный отчет, просмотреть его и затем осуществить выбор: распечатать отчет, сохранить его в нужном формате или вернуться к выбору отчетов. После распечатки или сохранения нужного отчета можно вернуться на Главную форму или выйти из программы.

Рисунок 3. Схема алгоритма работы приложения

После определения структуры приложения, можно приступать к проектированию структуры базы данных.

1.3 Проектирование структуры базы данных

Концептуальная модель базы данных – это модель предметной области, не ориентированной на определенную СУБД, она отражает предметную область в виде совокупности информационных объектов и их структурных связей. Различают концептуальные модели двух видов: объектно-ориентированные и семантические модели. Семантические модели отображают значения реальных сущностей и их отношений. Одной из наиболее популярных семантических моделей данных является модель сущность-связь (ER-модель). Для моделирования структуры данных можно использовать ER-диаграммы. Основными понятиями ER-диаграммы являются сущность, связь и атрибут [9].

Сущность – это реальный или виртуальный объект, имеющий существенное значение для рассматриваемой предметной области, информация о котором подлежит хранению. Каждая сущность должна иметь уникальный идентификатор и содержать один или несколько атрибутов, однозначно идентифицирующих каждый экземпляр сущности. В базе данных можно выделить следующие сущности: «Клиент», «Врач», «График работы», «Талон».

Связь – это соединение двух сущностей, при котором каждый экземпляр одной сущности, может быть связан с произвольным количеством экземпляров другой сущности и наоборот. Различают три типа связей между сущностями: один к одному (каждой записи первой таблицы соответствует только одна запись другой таблицы, «1:1»); один ко многим (каждой записи первой таблицы соответствует несколько записей другой таблицы, «1:М»); многие ко многим (каждой записи обеих таблиц соответствует несколько записей других таблиц, «М:М»). В базе данных приложения используются связи двух видов: один ко многим («Клиент» – «Талон»; «Врач» – «Клиент»; «Врач» – «График работы») и многие ко многим («График работы» – «Талон»). Связь представляется в виде линии, связывающей две сущности, и указываются правила поддержания связи.

Атрибут – это характеристика сущности, значимая для рассматриваемой предметной области. В ER-диаграмме список атрибутов сущности отображается в виде строк внутри прямоугольника, обозначающего сущность. Для базы данных приложения «Регистратура поликлиники» примерами атрибутов являются: фамилия, имя, отчество клиента. На рисунке 4 приводится ER-диаграмма базы данных, прямоугольниками показаны типы сущностей с атрибутами, линиями – связи, ромбами – типы связей между сущностями.

Работает

КЛИЕНТ

Код клиента

Ф.И.О

Адрес

Телефон

Диагноз

ВРАЧ

Код врача

Ф.И.О

Специализация

ТАЛОН

Код талона

Ф.И.О врача

Специализация

Дата/время приема

Получает

1

1

М

М

ГРАФИК РАБОТЫ

Код графика

Ф.И.О врача

Специализация

Дата/время приема

Лечит

М

Относится

М

1

М

Рисунок 4. ER-диаграмма модели базы данных приложения

Проанализируем связи между сущностями: «Клиент» наблюдается у одного участкового врача, но у данного врача может быть много клиентов, следовательно, используется связь: «один ко многим»; «Клиент» может получить несколько талонов к разным специалистам по направления участкового врача – связь «один ко многим»; «Врач» работает по определенному одному графику – связь «один ко многим»; согласно «Графика работы» может быть выдано множество талонов к одному узкому специалисту – связь «многие ко многим».

Для генерации структуры базы данных необходимо преобразовать концептуальную модель в логическую модель, состоящая из множества экземпляров различных типов данных, структурированных в соответствии с требованиями СУБД [11]. Следовательно, следующим этапом разработки является выбор конкретной системы управления базами данных и среды программирования для разработки интерфейса приложения.

Глава 2. Разработка приложения «Регистратура поликлиники»

2.1 Выбор средств и методов разработки

Перед разработкой программного приложения необходимо определить средства и методы разработки. Нужно выбрать следующие компоненты [10]:

  • систему управления базами данных;
  • язык программирования для разработки интерфейса.

В качестве СУБД при разработке приложения «Регистратура поликлиники» была выбрана СУБД Microsoft Access в составе Microsoft Office. СУБД Microsoft Access в составе Microsoft Office – мощное приложение Windows; впервые производительность СУБД органично сочетается с теми удобствами, которые имеются в распоряжении пользователей Microsoft Windows. Поскольку оба эти продукта – детища компании Microsoft, они прекрасно взаимодействуют между собой. Система Access работает под управлением Windows, так что при работе с ней пользователю доступны все преимущества Windows. Можно вырезать, копировать и вставлять данные из любого приложения Windows в Access и наоборот; можно создать проект формы в Access и вставить его в конструктор форм [8].

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

В Microsoft Access для обработки данных базовых таблиц используется мощный создать структурированный язык запросов – SQL (Structured Query Language). Используя виртуальную таблицу SQL можно выделить из одной или нескольких таблиц необходимую для решения конкретной задачи информацию. Access значительно упрощает задачу обработки данных и вовсе не обязательно знать язык SQL. При любой обработке данных из нескольких таблиц Access использует однажды заданные связи между таблицами [12].

Основными свойствами таблиц баз данных СУБД Microsoft Access являются:

  1. Имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
  2. Тип поля – определяет тип данных, которые могут содержаться в данном поле.
  3. Размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
  4. Формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю.
  5. Маска ввода – определяет форму, в которой вводятся данные.
  6. Подпись – определяет заголовок столбца таблицы для данного поля.
  7. Значение по умолчанию – то значение, которое вводится в ячейки поля автоматически.
  8. Условие на значение – ограничение, используемое для проверки правильности ввода данных.
  9. Сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных.
  10. Обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы.
  11. Пустые строки – свойство, разрешающее ввод пустых строковых данных (от свойства «Обязательное поле» отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
  12. Индексированное поле – если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Для индексированных полей можно сделать так, что значение в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных [13].

Таким образом, можно подвести итоги проведенного анализа. Следующие возможности Microsoft Access были положены в основу выбора конкретной СУБД при разработке приложения «Регистратура поликлиники»:

  • высокая степень универсальности и продуманности дружественного интерфейса, поддерживающего все возможности ОС Microsoft Windows, который рассчитан на работу с пользователями различной квалификации. Реализована система управления объектами базы данных, позволяющая оперативно переходить из режима конструирования в режим их непосредственной эксплуатации;
  • богатый набор визуальных средств разработки;
  • вся информация относящаяся к одной базе данных, хранится в едином файле (*.mdb), что обеспечивает простоту при переносе данных с одного рабочего места на другое, в условиях отсутствия сети;
  • глубоко развитые возможности интеграции с другими программными продуктами, входящими в состав Microsoft Office, а также с любыми программными продуктами, поддерживающими технологию OLE;
  • возможность конвертации данных из более ранних версий Microsoft Access , в более поздние;
  • невысокие требования к аппаратному обеспечению [6].

В качестве среды программирования выбрана интегрированная среда быстрой разработки приложений: Embarcadero RAD Studio XE8 фирмы Embarcadero Technologies, работающая под Microsoft Windows. С помощью RAD Studio разработчики на Delphi/Object Pascal и C++ смогут расширять функционал существующих Windows VCL приложений и создавать инновационные решения для мобильных и облачных платформ, а также для Internet of Things [4].

Embarcadero RAD Studio XE8 – это мощная визуальная среда программирования, в состав которой входит одновременно несколько программных оболочек таких, как: C++ Builder XE8, Delphi XE8, HTML5 Builder, InreBase. В последнюю версию RAD Studio Architect встроены самые последние версии программных оболочек для разработки качественных приложений. Среда разработки приложений rad studio поддерживает такие языки программирования: С, C++, Delphi. Системные требования [3]:

  • 1 GB RAM (рекомендуется 2 GB+);
  • 3–9 GB свободного пространства на жестком диске в зависимости от редакции и конфигурации;
  • GPU с поддержкой DirectX 9.0 или лучше (Pixel Shader Level 2);
  • разрешение 1024x768 или более высокое;
  • Intel® Pentium® или совместимый, минимум 1.6 GHz;
  • мышь или другое указывающее устройство.
  • операционная система: Windows 7, 8 (32 и 64 разрядная), Windows Server® 2008 (32 и 64 разрядная).

Таким образом, все компоненты для разработки выбраны.

2.2 Разработка базы данных

На основе концептуальной модели, рассмотренной в пункте 1.3, строится логическая модель, состоящая из множества экземпляров различных типов данных, структурированных в соответствии с требованиями конкретной СУБД. Каждой сущности концептуальной модели в базе данных должна соответствовать определенная таблица. Для оптимизации таблиц и сокращения количества полей, создаются таблицы-справочники, данные из которых, затем используются в других таблицах [15].

В качестве таблиц-справочников были созданы следующие таблицы: «Номер_карточки», «Номер_стеллажа», «Номер_кабинета», «Время_приема», «Часы_приема», «Специализация». Они состоят из двух-трех полей, первым из которых является ключевое поле-счетчик («Код»), второе (третье) поле – непосредственно справочник данных, соответствующих названию таблицы. Структура данных таблиц и атрибутный состав приводятся в таблицах 1 – 6.

Таблица 1. Номер_карточки

Имя поля

Тип данных

Размер поля

Описание поля

Код Номера

Счетчик

Длинное целое

Первичный ключ

Номер Карточки

Числовой

Длинное целое

Номер карточки

Таблица 2. Номер_стеллажа

Имя поля

Тип данных

Размер поля

Описание поля

Код Стеллажа

Счетчик

Длинное целое

Первичный ключ

Номер Стеллажа

Текстовый

50

Буквы алфавита

Таблица 3. Номер_кабинета

Имя поля

Тип данных

Размер поля

Описание поля

Код Кабинета

Счетчик

Длинное целое

Первичный ключ

Номер Кабинета

Числовой

Длинное целое

Номер кабинета

Таблица 4. Время_приема

Имя поля

Тип данных

Размер поля

Описание поля

Код Времени

Счетчик

Длинное целое

Первичный ключ

Время Приема

Дата/Время

Формат времени

Время приема

Таблица 5. Часы_приема

Имя поля

Тип данных

Размер поля

Описание поля

Код Часов

Счетчик

Длинное целое

Первичный ключ

Дни приема

Текстовый

50

Часы приема

Часы Приема

Текстовый

50

Часы приема

Таблица 6. Специализация

Имя поля

Тип данных

Размер поля

Описание поля

Код Специализации

Счетчик

Длинное целое

Первичный ключ

Название Специализации

Текстовый

255

Специализация

Таблица «Карточка» (см. таблицу 7) содержит анкетные данные клиента (фамилия, имя, отчество, дата рождения, пол, домашний адрес, домашний, сотовый и рабочий телефоны, место работы и должность), номер карточки, номер участка и пол клиента заполняются из таблиц-справочников.

Таблица 7. Карточка

Имя поля

Тип данных

Размер поля

Описание поля

Код Карточки

Счетчик

Длинное целое

Первичный ключ

Номер Карточки

Числовой

Длинное целое

Номер из справочника

Номер Участка

Числовой

Длинное целое

Номер из справочника

Фамилия

Текстовый

50

Фамилия клиента

Имя

Текстовый

50

Имя клиента

Отчество

Текстовый

50

Отчество клиента

Дата_Рождения

Дата/время

Формат даты

Дата рождения

Пол

Числовой

Длинное целое

Пол из справочника

Улица

Текстовый

50

Домашний адрес

Дом

Числовой

Длинное целое

Домашний адрес

Корпус

Текстовый

50

Домашний адрес

Квартира

Числовой

Длинное целое

Домашний адрес

Домашний Телефон

Числовой

Длинное целое

Домашний телефон

Сотовый Телефон

Текстовый

50

Сотовый телефон

Место Работы

Текстовый

50

Место работы клиента

Должность

Текстовый

50

Должность клиента

Адрес Работы

Текстовый

50

Адрес работы клиента

Рабочий Телефон

Числовой

Длинное целое

Рабочий телефон клиента

Примечание

Текстовый

50

Диагноз, выбытие

МестоРасположение

Числовой

Длинное целое

Название стеллажа (буква)

Таблица «Врачи» (см. таблицу 8) содержит анкетные данные о врачах поликлиники (фамилия, имя, отчество, специализация).

Таблица «График_Работы», приведенная в таблице 9, содержит данные о графике работы участковых врачей-терапевтов и узких специалистов, по дням рабочей недели. Все поля заполняются из таблиц-справочников, кроме поля «Фамилия», содержащее фамилию врача и заполняющееся из столбца таблицы «Врачи» – «Фамилия».

Таблица 8. Врачи

Имя поля

Тип данных

Размер поля

Описание поля

Код Врача

Счетчик

Длинное целое

Первичный ключ

Фамилия

Текстовый

50

Фамилия врача

Имя

Текстовый

50

Имя врача

Отчество

Текстовый

50

Отчество врача

Специализация

Числовой

Длинное целое

Специализация из справочника

Таблица 9. График_Работы

Имя поля

Тип данных

Размер поля

Описание поля

Код Графика

Счетчик

Длинное целое

Первичный ключ

Номер Участка

Числовой

Длинное целое

Номер участка из справочника

Специализация

Числовой

Длинное целое

Специализация из справочника

Фамилия

Числовой

Длинное целое

Фамилия врача из списка

Понедельник

Числовой

Длинное целое

Часы приема из справочника

Вторник

Числовой

Длинное целое

Часы приема из справочника

Среда

Числовой

Длинное целое

Часы приема из справочника

Четверг

Числовой

Длинное целое

Часы приема из справочника

Пятница

Числовой

Длинное целое

Часы приема из справочника

Номер Кабинета

Числовой

Длинное целое

Номер кабинета из справочника

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

Таблица 10. Талон

Имя поля

Тип данных

Размер поля

Описание поля

Код Талона

Счетчик

Длинное целое

Первичный ключ

Номер Талона

Числовой

Длинное целое

Номер талона

Специализация

Числовой

Длинное целое

Специализация из справочника

ФИО_Врач

Текстовый

50

Фамилия и инициалы из запроса

Номер Кабинета

Числовой

Длинное целое

Номер кабинета из справочника

Дата Приема

Дата/время

Краткий формат даты

Дата приема из справочника

Время Приема

Числовой

Длинное целое

Время приема из справочника

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

На этапе создания физической модели БД необходимо продумать структуру таблиц создаваемых в конкретной СУБД, соответствующих созданным сущностям в концептуальной модели данных; назначить типы полей для хранения атрибутов сущностей; при необходимости создать дополнительные объекты. Отображение логической модели в физическую, не обязательно выполняются в точном соответствии с исходным вариантом, в процессе преобразования возможны некоторые изменения, например, добавляются дополнительные поля, создаются новые сущности [19].

База данных включает в себя 4 таблицы, отображающие все необходимые сущности и 6 таблиц-справочников, созданных после нормализации базы.

На рисунке 5 приводится список таблиц и раскрытое содержимое таблицы «Карточка». Таблицы «Номер_карточки», «Номер_стеллажа», «Номер_кабинета», «Время_приема», «Часы_приема», «Специализация» являются справочниками и подлежат заполнению в первую очередь. Таблицы «Карточка», «Врачи», «График_Работы», «Талон» содержат данные о клиентах, врачах и графике работы врачей поликлиники.

Рисунок 5. Список таблиц базы данных приложения

Структура всех таблиц установлена, нужно определить связи между таблицами. В структуре базы данных использованы связи «один ко многим».

На рисунке 6 представлена структурная схема базы данных, построенная средствами СУБД Access.

Рисунок 6. Схема базы данных приложения «Регистратура поликлиники»

2.3 Разработка интерфейса приложения

Программа реализована в интегрированной среде быстрой разработки приложений: Embarcadero RAD Studio XE8 [5]. В программе автоматизации использованы следующие самостоятельно разработанные модули, соответствующие используемым формам:

Unit1 (Форма Form1) – модуль главной формы для выбора других форм: «Формы» или «Отчеты»;

Unit2 (Форма Form2) – модуль формы «Формы» для выбора других форм или возврата на главную форму;

Unit3 (Форма Form3) – модуль формы «Поликлиника» для ввода пароля пользователя и входа в приложение;

Unit4 (Форма Form4) – модуль формы «Отчеты» для выбора отчета или возврата в главную форму;

Unit5 (Форма Form5) – модуль формы «Справочники» для просмотра или заполнения данных всех справочников;

Unit6 (Форма FormDM) – форма DataModule, предназначенная для размещения невизуальных компонент для доступа к данным базы Microsoft Office Access;

Unit7 (Форма Form7) – модуль формы «Талон» для ввода данных талона на прием к врачу;

Unit8 (Форма Form8) – модуль формы «График работы» для просмотра и заполнения графика работы;

Unit9 (Форма Form9) – модуль формы «Карточка» для заполнения карточки пациента поликлиники;

Unit10 (Форма Form10) – модуль формы «Карточки пациентов» для отображения данных карточек всех пациентов;

Unit11 (Форма Form11) – модуль формы «Отчет Врачи» для просмотра, отправки в другие форматы или распечатки данных на всех врачей;

Unit12 (Форма Form12) – модуль формы «Талоны» для просмотра, отправки в другие форматы или распечатки талонов на прием к врачу;

Unit13 (Форма Form13) – модуль формы «Графики работы» для просмотра, отправки в другие форматы или распечатки графиков работы .

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

Таблица 11. Список модулей приложения

Модуль

Форма

Связанные модули

Форма визуальная

Комментарии

1

2

3

4

5

Unit1

Form1

Unit2, Unit3, Unit4

Главная форма

Выбор других форм

Unit2

Form2

Unit1, Unit5, Unit9, Unit8, Unit6, Unit7

Формы

Выбор нужной формы

Unit3

Form3

Unit1

Вход в приложение

Ввод пароля

Unit4

Form4

Unit1, Unit11, Unit12, Unit13

Отчеты

Выбор отчета

Unit5

Form5

Unit2, Data.DB

Справочники

Просмотр и заполнение всех справочников

Unit6

Form6

System.SysUtils, System.Classes, Data.DB, Data.Win.ADODB

DM

Подключение таблиц

1

2

3

4

5

Unit7

Form7

Unit2, Unit12, Data.DB

Талон

Заполнение талона

Unit8

Form8

Unit2, Unit13, Data.DB

График работы

Просмотр и заполнение графика работы

Unit9

Form9

Unit10, Data.DB

Карточка

Заполнение карточки пациента

Unit10

Form10

Unit2, Data.DB

Карточки пациентов

Просмотр всех карточек

Unit11

Form11

Unit4, Unit5, Data.DB

Отчет Врачи

Данные на всех врачей для печати

Unit12

Form12

Unit4, Unit7, Data.DB

Отчет Талоны

Вывод талонов для печати

Unit13

Form13

Unit4, Unit8, Data.DB

Отчет Графики работы

Вывод графиков работы для печати

Схема взаимодействия модулей показана на рисунке 7.

Рисунок 7. Схема связи между модулями приложения

Приложение «Регистратура поликлиники» состоит из 13 модулей, 12 модулей являются визуальными и отображаются для пользователя в виде форм. Один модуль Unit6, представляет собой форму DataModule, предназначенную для размещения невизуальных компонент для доступа к данным базы Microsoft Office Access [12]. К форме данного модуля пользователь не имеет доступа.

Код программы разработан в интегрированной среде быстрой разработки приложений: Embarcadero RAD Studio XE8 и хранится в файле Project1.dpr. Код всех модулей программы хранится в файлах с расширением *.pas.

Полный листинг программного кода представлен в Приложении 1.

2.4 Тестирование программного приложения

Для загрузки приложения «Регистратура поликлиники» запускается исполняемый файл Project1.exe. Загрузится форма «Поликлиника» (см. рисунок 8). В соответствующее поле с надписью «Введите пароль:» нужно ввести пароль пользователя и нажать кнопку «Вход», если введен неверный пароль, то выходит сообщение: «Ошибка авторизации: Неверный пароль» (см. рисунок 9). После ввода правильного пароля открывается главная форма «Регистратура поликлиники» (см. рисунок 10).

Рисунок 8. Форма «Поликлиника» для ввода пароля

Рисунок 9. Сообщение об ошибке ввода пароля

Рисунок 10. Главная форма «Регистратура поликлиники»

Кнопка «Формы» вызывает дополнительную форму «Формы» с пятью кнопками: «Карточки», «График работы», «Талон», «Справочники», вызывающие соответствующие экранные формы позволяющие вводить, исправлять и удалять данные (см. рисунок 11). Кнопка «В главное меню», позволяет вернуться к Главной форме приложения.

Рисунок 11. Форма «Формы»

Кнопка «Карточки» вызывает экранную форму «Карточка», позволяющую вводить, исправлять и удалять анкетные данные на клиентов в таблице БД «Карточка» (см. рисунок 12). Форма содержит несколько полей и управляющие кнопки: «Добавить карточку», «Все карточки». Форма условно делится на три поля: анкетные данные клиента (фамилия, имя, отчество, дата рождения, пол), данные о местожительстве пациента (участок, улица, дом, квартира, телефоны) и месте работы (место, должность, телефон, адрес работы). Дата рождения водится с помощью календаря, пол пациента выбирается из списка: муж, жен.

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

Рисунок 12. Форма «Карточка»

Для просмотра списка всех карточек, нажимается кнопка «Все карточки» и выходит форма «Карточки пациентов» (см. рисунок 13).

Форма представляет собой таблицу со списком всех пациентов и данных на этих пациентов.

Рисунок 13. Форма «Карточки пациентов»

Кнопка «График работы» открывает соответствующую экранную форму для просмотра и выдачи справок клиентам о режиме работы врача, необходимого клиенту.

Для наглядности форма представлена в виде таблицы. Все поля заполняются из списков других таблиц-справочников, что сокращает время заполнения, предотвращает ошибки ручного набора и позволяет проводить мобильные замены (см. рисунок 14).

Кнопка «Талоны» вызывает экранную форму «Талон», позволяющую вводить, исправлять и удалять данные в таблице «Талон». Форма содержит шесть полей: «Номер» (талона), «Специализация», «Врач», «Кабинет», «Дата» (приема), «Время» (приема) и кнопку: «Добавить талон».

Рисунок 14. Форма «График работы»

Номер талона вводится вручную, так как количество талонов к каждому узкому специалисту меняется в зависимости от часов приема, операционных дней и т.п. Остальные поля заполняются из соответствующих списков таблиц-справочников. После заполнения всех талонов, можно их просмотреть и распечатать в отчете «Талон». Предоставленная форма позволяет легко изменять все данные, в случае изменения ситуации у врача (см. рисунок 15).

Рисунок 15. Форма «Талон»

Кнопка «Справочники» вызывает форму, состоящую из семи кнопок, которые открывают соответствующие вкладки таблиц-справочников в случае необходимости их просмотра или корректировки. Данные таблицы изменяются довольно редко, поэтому отдельные формы для исправления или добавления данных в эти таблицы не предусмотрены. Редактирование данных производится в таблицах и сохраняется нажатием кнопки: «Редактировать». На рисунке 16 представлена форма «Справочники». На рисунке 17 представлены примеры открытых вкладок формы.

Рисунок 16. Форма «Справочники»

Рисунок 17. Форма «Справочники» – примеры вкладок

Кнопка «Отчеты» в Главной форме открывает дополнительную форму содержащую четыре кнопки: «Отчет талонов», «Отчет графиков работы», «Отчет врачи» и «В главное меню» (см. рисунок 18).

Рисунок 18. Форма «Отчеты»

Нажатие данных кнопок вызывает соответствующие отчеты, которые можно просмотреть, сохранить в других форматах или распечатать. Примеры отчетов приводятся на рисунках 19-21.

Рисунок 19. Отчет «Талоны»

Рисунок 20. Отчет «Графики работы»

Рисунок 21. Отчет «Врачи»

Тестирование программного приложения «Регистратура поликлиники» завершено.

Заключение

Целью курсовой работы являлась разработка программного приложения справочной службы «Регистратура поликлиники», позволяющего автоматизировать деятельность регистратуры.

Данная цель была реализована посредством решения задач:

  • проведено моделирование предметной области;
  • выполнено проектирование структуры приложения;
  • выполнено проектирование структуры базы данных;
  • выбраны средства и методы разработки;
  • разработана база данных приложения;
  • разработан интерфейс приложения;
  • проведено тестирование разработанного приложения.

На базе СУБД Microsoft Access и языка объектно-ориентированного программирования Embarcadero RAD Studio XE8 было разработано программное приложение «Регистратура поликлиники».

В состав приложения входят следующие объекты:

  • блок авторизации обеспечивает защиту программного приложения;
  • главная форма позволяет попасть на дополнительные формы «Справочники», «Карточки», «Талоны», «График работы» и «Отчеты»;
  • форма «Справочники» включает кнопки: «Врачи», «Часы приема», «Время приема», «Специализация», «Номер стеллажа», «Номер кабинета»;
  • форма «Карточка» позволяет зарегистрировать нового пациента;
  • форма «Карточки пациентов» позволяет просмотреть данные на всех пациентов поликлиники;
  • форма «Талон» предназначена для формирования талонов на прием к врачам для выдачи пациентам;
  • форма «График работы» предназначена для просмотра и выдачи справок клиентам о режиме работы врача, необходимого клиенту;
  • форма «Отчеты» предназначена для составления различных отчетов: «Отчет талонов», «Отчет графиков работы», «Отчет врачи».

Алгоритм работы приложения можно разделить на пять отдельных алгоритмов по сфере деятельности: выбор производится на Главной форме.

Алгоритм «Справочники» начинается с выбора справочника или возврата на Главную страницу. Если справочник выбран и просмотрен, то для каждого справочника нужно вновь осуществить выбор: возврат на Главную форму или редактирование справочника. После редактирования можно вернуться на Главную форму без сохранения или сохранить внесенные изменения. После сохранения можно вернуться на Главную форму или выйти из программы.

Алгоритм «Карточка» начинается с выбора: заполнение новой карточки или просмотр всех карточек пациентов. При заполнении карточки нового пациента, выбирается форма «Карточка» и заполняются данные, затем можно выбрать: вернуться на Главную форму без сохранения или сохранить. После сохранения также осуществляется выбор: выход из алгоритма «Карточка» или просмотр новой карточки в списке всех карточек.

Алгоритм «Талон» начинается с заполнения формы талона, затем можно выбрать: вернуться на Главную форму без сохранения или сохранить талон. После сохранения можно вернуться на Главную форму или выйти.

Алгоритм «График работы» – заполнения формы графика работы, выбор: вернуться на Главную форму без сохранения или сохранить график. После сохранения можно вернуться на Главную форму или выйти из программы.

Алгоритм «Отчеты» позволяет выбрать нужный отчет, просмотреть его и затем осуществить выбор: распечатать отчет, сохранить его в нужном формате или вернуться к выбору отчетов. После распечатки или сохранения нужного отчета можно вернуться на Главную форму или выйти из программы.

Цель курсовой работы достигнута – программное приложение «Регистратура поликлиники» на базе СУБД Microsoft Access и языка объектно-ориентированного программирования Embarcadero RAD Studio XE8 разработано.

Список использованной литературы

  1. Об информации, информационных технологиях и о защите информации [Текст]: Федеральный закон РФ от 27.07.2006 г. N 149-ФЗ (с изм. и доп., вступ. в силу с 06.07.2016). – М.: ФЗ. – 2016.
  2. Delphi. История языков программирования [Электронный ресурс] // Хабр [сайт]. URL: https://habr.com/ru/post/316492 (дата обращения: 30.11.2016).
  3. RAD Studio XE8 [Электронный ресурс] // Embarcadero [сайт]. URL: https://www.embarcadero.com/products/rad-studio (дата обращения: 20.11.2016).
  4. Баженова И.Ю., Основы проектирования приложений баз данных [Текст] / И.Ю. Баженова - М.: Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. – 261 с.
  5. Базы данных [Электронный ресурс] // INTUIT [сайт]. URL: https://www.intuit.ru/studies/courses/74/74/info (дата обращения: 20.04.2020).
  6. Библиотека Delphi [Электронный ресурс] // Delphi INT [сайт]. URL: http://www.delphi.int.ru (дата обращения: 02.02.2020).
  7. Венделева, М.А. Информационные технологии в управлении. [Текст]: Учебное пособие для бакалавров / М.А. Венделева, Ю.В. Вертакова. – Люберцы: Юрайт, 2016. – 462 c.
  8. Выбор СУБД для Delphi-приложения [Электронный ресурс] // Хабр [сайт]. URL: https://habr.com/ru/post/311658 (дата обращения: 04.10.2016).
  9. Голицына О.Л., Основы проектирования баз данных. [Текст]: Учебное пособие / О.Л. Голицына - М.: Форум, 2016. – 416 с.
  10. Изучаем Delphi. О программировании и о Дельфи [Электронный ресурс] // SNK [сайт]. URL: http://www.snkey.com/books/delphi/ch1-1.html (дата обращения: 25.10.2015).
  11. Информационные системы в экономике: учебник для академического бакалавриата [Текст] / В.Н. Волкова, В.Н. Юрьев, С.В. Широкова, А.В. Логинова; под ред. В.Н. Волковой, В.Н. Юрьева. - М.: Издательство Юрайт, 2016. - 402 с.
  12. Информационные системы и технологии [Текст]: Научное издание. / Под ред. Ю.Ф. Тельнова. – М.: ЮНИТИ, 2016. – 303 c.
  13. Информационные системы и технологии в экономике и управлении: учебник для академического бакалавриата [Текст] / В.В. Трофимов [и др.]; под ред. В.В. Трофимова. - 4-е изд., перераб. и доп. - М.: Издательство Юрайт, 2016. - 542 с.
  14. Карминский А.М., Методология создания информационных систем [Текст] / А.М. Карминский - М.: Инфра-М, 2016. – 320 с.
  15. Ковязин, А. Разработка приложений и баз данных [Электронный ресурс] // OSP [сайт]. URL: https://www.osp.ru/winitpro/2019/03/13054895 (дата обращения: 13.03.2019).
  16. Корнеев, И.К. Информационные технологии в работе с документами [Текст]: Учебник / И.К. Корнеев. – М.: Проспект, 2016. – 304 c.
  17. Мартин, Р. К. Идеальный программист. Как стать профессионалом разработки ПО [Текст] / Р. К. Мартин. – СПб.: Питер, 2016. – 224 с.
  18. Мартин, Р. К. Чистый код. Создание, анализ и рефакторинг [Текст] / Р. К. Мартин. – СПб.: Питер, 2015. – 464 с.
  19. Осипов, Д. Delphi. Профессиональное программирование [Текст] / Д. Осипов. – СПб.: Символ-плюс, 2015. – 1056 c.
  20. Солонин, Е.Б. Современные методики и разработки информационных систем [Текст] / Е.Б. Солонин. – Екатеринбург.: УрФУ, 2015. – 44 c.

Приложение 1

Код приложения «Регистратура Поликлиники»

unit Unit1;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.ComCtrls,

Vcl.Imaging.jpeg;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Image1: TImage;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses Unit2, Unit3, Unit4;

procedure TForm1.Button1Click(Sender: TObject);

begin

Form2.Show;

Form1.Visible:=false;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form4.Show;

Form1.Visible:=false;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form3.close;

end;

end.

unit Unit2;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Imaging.jpeg,

Vcl.ExtCtrls;

type

TForm2 = class(TForm)

Button2: TButton;

Button3: TButton;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Image1: TImage;

procedure Button6Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button5Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

uses Unit1, Unit5, Unit9, Unit8, Unit6, Unit7;

procedure TForm2.Button2Click(Sender: TObject);

begin

Form9.show;

end;

procedure TForm2.Button3Click(Sender: TObject);

begin

Form8.show;

end;

procedure TForm2.Button5Click(Sender: TObject);

begin

Form5.show;

end;

procedure TForm2.Button6Click(Sender: TObject);

begin

Form1.Show;

Form2.Close;

end;

procedure TForm2.Button7Click(Sender: TObject);

begin

Form7.show;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.show;

Form2.visible:=false;

end;

end.

unit Unit3;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls,

Vcl.StdCtrls, Vcl.Buttons;

type

TForm3 = class(TForm)

Image1: TImage;

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

procedure FormKeyPress(Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

{$R *.dfm}

uses Unit1;

procedure TForm3.Button1Click(Sender: TObject);

var pass: string;

begin

pass:='';

if (Edit1.Text=pass)

then

begin

Form1.Show;

Form3.Hide;

end

else MessageBox(0, 'Неверный пароль', 'Ошибка авторизации', MB_ICONWARNING or MB_OK);

end;

procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char);

begin

if key=#13

then button1.Click;

end;

end.

unit Unit4;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls,

Vcl.StdCtrls, Data.DB, Data.Win.ADODB;

type

TForm4 = class(TForm)

Image1: TImage;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button6: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Button6Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

uses Unit1, Unit11, Unit12, Unit13;

procedure TForm4.Button2Click(Sender: TObject);

begin

Form13.frxReport1.ShowReport;

end;

procedure TForm4.Button3Click(Sender: TObject);

begin

Form12.frxReport1.ShowReport;

end;

procedure TForm4.Button4Click(Sender: TObject);

begin

Form11.frxReport1.ShowReport;

end;

procedure TForm4.Button6Click(Sender: TObject);

begin

Form1.Show;

Form4.Close;

end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Form1.show;

Form4.visible:=false;

end;

end.

unit Unit5;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls, Data.DB,

Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Data.Win.ADODB;

type

TForm5 = class(TForm)

Image1: TImage;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button6: TButton;

Button7: TButton;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

DBGrid1: TDBGrid;

ADOTable1: TADOTable;

DBGrid2: TDBGrid;

DBGrid3: TDBGrid;

DBGrid4: TDBGrid;

DBGrid5: TDBGrid;

DBGrid6: TDBGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Button5: TButton;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.Button1Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='часы_приема';

adotable1.active:=true;

dbgrid1.Hide;

dbgrid2.show;

dbgrid3.Hide;

dbgrid4.Hide;

dbgrid5.Hide;

dbgrid6.Hide;

Label2.Visible:=true;

Label1.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

end;

procedure TForm5.Button2Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='время_приема';

adotable1.active:=true;

dbgrid1.Hide;

dbgrid2.hide;

dbgrid3.show;

dbgrid4.Hide;

dbgrid5.Hide;

dbgrid6.Hide;

Label3.Visible:=true;

Label2.Visible:=false;

Label1.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

end;

procedure TForm5.Button3Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='врачи';

adotable1.active:=true;

dbgrid1.show;

dbgrid2.hide;

dbgrid3.Hide;

dbgrid4.Hide;

dbgrid5.Hide;

dbgrid6.Hide;

Label1.Visible:=true;

Label2.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

end;

procedure TForm5.Button4Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='специализация';

adotable1.active:=true;

dbgrid1.hide;

dbgrid2.hide;

dbgrid3.Hide;

dbgrid4.Show;

dbgrid5.Hide;

dbgrid6.Hide;

Label4.Visible:=true;

Label2.Visible:=false;

Label3.Visible:=false;

Label1.Visible:=false;

Label5.Visible:=false;

Label6.Visible:=false;

end;

procedure TForm5.Button6Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='номер_стеллажа';

adotable1.active:=true;

dbgrid1.hide;

dbgrid2.hide;

dbgrid3.Hide;

dbgrid4.Hide;

dbgrid5.Show;

dbgrid6.Hide;

Label5.Visible:=true;

Label2.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label1.Visible:=false;

Label6.Visible:=false;

end;

procedure TForm5.Button7Click(Sender: TObject);

begin

adotable1.active:=false;

adotable1.TableName:='номер_кабинета';

adotable1.active:=true;

dbgrid1.hide;

dbgrid2.hide;

dbgrid3.Hide;

dbgrid4.Hide;

dbgrid5.Hide;

dbgrid6.Show;

Label6.Visible:=true;

Label2.Visible:=false;

Label3.Visible:=false;

Label4.Visible:=false;

Label5.Visible:=false;

Label1.Visible:=false;

end;

end.

unit Unit7;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls, Data.DB,

Data.Win.ADODB, Vcl.DBCtrls, Vcl.ComCtrls, Vcl.StdCtrls;

type

TForm7 = class(TForm)

Image1: TImage;

Label2: TLabel;

Label1: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Edit1: TEdit;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

DateTimePicker1: TDateTimePicker;

ComboBox4: TComboBox;

Button1: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form7: TForm7;

implementation

{$R *.dfm}

end.

unit Unit8;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls, Data.DB,

Data.Win.ADODB, Vcl.Grids, Vcl.DBGrids, Vcl.StdCtrls;

type

TForm8 = class(TForm)

Image1: TImage;

DBGrid1: TDBGrid;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

ADOTable1: TADOTable;

Button1: TButton;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form8: TForm8;

implementation

{$R *.dfm}

end.

unit Unit9;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Imaging.jpeg, Vcl.ExtCtrls,

Vcl.StdCtrls, Vcl.ComCtrls, Data.DB, Data.Win.ADODB, Vcl.Samples.Spin;

type

TForm9 = class(TForm)

Image1: TImage;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DateTimePicker1: TDateTimePicker;

Label5: TLabel;

ComboBox1: TComboBox;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Edit4: TEdit;

Edit5: TEdit;

Edit7: TEdit;

Edit8: TEdit;

Edit9: TEdit;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Edit10: TEdit;

Edit11: TEdit;

Edit12: TEdit;

Edit13: TEdit;

Button1: TButton;

Button2: TButton;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

ADOTable1: TADOTable;

Edit6: TEdit;

Label11: TLabel;

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form9: TForm9;

implementation

{$R *.dfm}

uses Unit10;

procedure TForm9.Button2Click(Sender: TObject);

begin

Form10.Show;

end;

end.

unit Unit10;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.Grids,

Vcl.DBGrids;

type

TForm10 = class(TForm)

DBGrid1: TDBGrid;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

ADOTable1: TADOTable;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form10: TForm10;

implementation

{$R *.dfm}

end.

unit Unit11;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, frxClass,

frxPreview, frxDBSet, frxOLE, frxExportRTF, frxExportHTML,

frxExportBaseDialog, frxExportPDF;

type

TForm11 = class(TForm)

frxReport1: TfrxReport;

frxPreview1: TfrxPreview;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

ADOTable1: TADOTable;

frxDBDataset1: TfrxDBDataset;

frxPDFExport1: TfrxPDFExport;

frxHTMLExport1: TfrxHTMLExport;

frxRTFExport1: TfrxRTFExport;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form11: TForm11;

implementation

{$R *.dfm}

end.

unit Unit12;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, frxClass,

frxPreview, frxDBSet;

type

TForm12 = class(TForm)

frxReport1: TfrxReport;

frxDBDataset1: TfrxDBDataset;

frxPreview1: TfrxPreview;

ADOConnection1: TADOConnection;

DataSource1: TDataSource;

ADOTable1: TADOTable;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form12: TForm12;

implementation

{$R *.dfm}

end.

unit Unit13;

interface

uses

Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,

Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, frxClass,

frxDBSet, frxPreview;

type

TForm13 = class(TForm)

frxPreview1: TfrxPreview;

frxReport1: TfrxReport;

frxDBDataset1: TfrxDBDataset;

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

DataSource1: TDataSource;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form13: TForm13;

implementation

{$R *.dfm}

end.