Автоматизированную информационная система учета пациентов «Центра восстановительной медицины и реабилитации для детей»
Содержание ВВЕДЕНИЕ 6 1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 7
8 1.1.1 Предметная область 8 1.1.2 Таблицы базы данных 8 1.1.3 Нормализация таблиц при проектировании баз данных 9 1.1.4 Проектирование баз данных методом «Сущность-связь» 10
11 1.2.1 Описание системы «Borland Delphi 7» 12 1.2.2 Структура среды программирования 12 1.2.3 Главные составные части среды программирования 12 1.3 Описание системы «Paradox 7.0» 15 1.3.1 СУБД Paradox 15 1.3.2 Происхождение Paradox 16 2. ПРАКТИЧЕСКАЯ ЧАСТЬ 17 2.1 Описание предметной области 17 2.2 Основные требования к базе данных 17 2.3 Функциональные требования к системе
17
18 2.6 Определение полного списка атрибутов исходя из анализа предметной области 2.7 Этапы проектирования 2.8 ER-диаграмма 18 22 23 2.9 Схема данных 24 2.10 Руководство программисту 24 2.11 Руководство пользователя 29 Заключение 40 Список литературы 41 Приложение А 42 ВВЕДЕНИЕ В условиях постоянно растущего научно-технического прогресса одним из основополагающих факторов повышения производительности труда в среде здравоохранения является степень автоматизированности деятельности медицинского учреждения. Одно из основных направлений в данной сфере хранение информации в виде базы данных. Базы данных содержат некоторое множество данных, необходимых для решения конкретных информационных задач. Базы данных обеспечивают удобство использования для ведения учёта и анализа данных. Они предоставляют основной и один из самых удобных способов представления информации, которая подвергается частому просмотру и изменению содержания. Данная работа представляет собой автоматизированную информационную систему учета пациентов «Центра восстановительной медицины и реабилитации для детей». Целью этой работы являлось создание базы данных для Государственного бюджетного учреждения здравоохранения Нижегородской области «Центр восстановительной медицины и реалибитации для детей», которая бы отвечала всем поставленным перед ней задачам. База данных должна обеспечивать централизованное хранение данных о пациентах, предоставлять информацию о медикаментах и медицинском оборудовании, имеющихся в учреждении, иметь доступ к шифрам заболеваний данной профессиональной области врача, формировать необходимые в процессе работы отчеты, позволяющие вести чёткий контроль за деятельностью центра. Система должна иметь простой и понятный в использовании интерфейс. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ Базами данных (БД) называют электронные хранилища информации, доступ к которым осуществляется с одного или нескольких компьютеров. Обычно БД создается для хранения данных, содержащих сведения о некоторой предметной области, то есть некоторой области человеческой деятельности или области реального мира, и доступа к ним. Системы управления базами данных (СУБД) это программные средства, предназначенные для создания, заполнения, обновления и удаления баз данных. Различают три основных вида СУБД: промышленные универсального назначения, промышленные специального назначения и разрабатываемые для конкретного заказчика. Специализированные СУБД создаются для управления базами данных конкретного назначения: бухгалтерскими, складскими, банковскими и т.д. Универсальные СУБД, не имеют четко очерченных рамок применения, они рассчитаны на все случаи жизни и как следствие, достаточно сложны и требуют от пользователя специальных знании. Как специализированные, так и универсальные промышленные СУБД относительно дешевы, довольно надежны (отлажены) и готовы к немедленной работе, в то время как заказные СУБД требуют существенных затрат, а их подготовка к работе и отладка занимают значительный период времени (от нескольких месяцев до нескольких лет). Однако, в отличие от промышленных, заказные СУБД в максимальной степени учитывают специфику работы заказчика (того или иного предприятия), их интерфейс обычно интуитивно понятен пользователям и не требует от них специальных знаний. По своей архитектуре СУБД делятся на одно-, двух- и трехзвенные. В однозвенной архитектуре используется единственное звено (клиент), обеспечивающее необходимую логику управления данными и их визуализацию. В двухзвенной архитектуре значительную часть логики управления данными берет на себя сервер БД, в то время как клиент в основном занят отображением данных в удобном для пользователя виде. В трехзвенных СУБД используется промежуточное звено сервер приложений, являющееся посредником между клиентом и сервером БД. Сервер приложений призван полностью избавить клиента от каких бы то ни было забот по управлению данными и обеспечению связи с сервером БД.
Под предметной областью (ПО) понимают часть реального мира. По отношению к информационным системам предметная область это та часть реального мира, о которой информационная система собирает информацию. Например, предметной областью СУБД, описанной в данной работе является деятельность «Центра восстановительной медицины и реалибитации для детей». Предметная область состоит из фрагментов. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих объект, а также множеством пользователей, объединяемые единым взглядом на предметную область. 1.1.2 Таблицы базы данных Единицей хранящейся в БД информации является таблица. Каждая таблица представляет собой совокупность строк и столбцов где строки соответствуют экземпляру объекта, конкретному событию или явлению, а столбцы - атрибутам (признакам, характеристикам, параметрам) этого объекта, события, явления. В терминах БД столбцы таблицы называются полями, а ее строки записями. Между отдельными таблицами БД могут существовать связи. Базы данных, между отдельными таблицами которых существуют связи, называются реляционными. Связанные отношением таблицы взаимодействуют по принципу главная - детальная. Главную таблицу часто называют родительской, а детальную - дочерней. Одна и та же таблица может быть главной по отношению к одной таблице БД и дочерней - по отношению к другой. В каждой таблице БД может существовать первичный ключ поле или набор полей, однозначно идентифицирующий запись. Значение первичного ключа в таблице БД должно быть уникальным, то есть в таблице не должно существовать двух или более записей с одинаковым значением первичного ключа. Поскольку первичный ключ должен быть уникальным, для него могут использоваться не все поля таблицы. Индексы отличаются от первичных ключей тем, что не требуют непременной уникальности значений входящих в их состав полей. Они устанавливаются по полям, которые часто используются при поиске и сортировке данных: индексы помогут системе значительно быстрее найти нужные данные или отсортировать их в нужной последовательности. Следует так же отметить, что использование индексов также увеличивает размер, занимаемый базой данных. По этой причине не следует создавать индексы без весомых оснований. Например, если поле используется в одном большом запросе, запускаемом несколько раз в месяц - индексировать его нет необходимости. 1.1.3 Нормализация таблиц при проектировании баз данных Реляционные базы данных во многих случаях требуют нормализации. Под нормализацией следует понимать процесс преобразования отношения, имеющего некоторые аномалии, к отношению с меньшим их количеством. Аномалией можно считать любые несогласованности структуры базы данных, приводящие к появлению чрезмерной избыточности, нарушению данных при удалении записей или невозможности вида данных до наступления каких-либо дополнительных условий. В случае данной работы, если в таблице «Состав семьи» каждым родителям проставлять ФИО ребенка база данных будет содержать очень много избыточной информации в виде дублирования ФИО пациентов. Для устранения данной избыточности данных достаточно создать таблицу со списком пациентов, присвоить каждому из них свой уникальный ID (как правило, при помощи счетчика или создания автоинкрементного поля) и в таблицу «Состав семьи» записывать цифровой ID ребенка а не его ФИО. Различают 3 основных вида нормальных форм: Первая нормальная форма требует, чтобы каждое поле таблицы базы данных было атомарным, то есть было не делимым и не содержало повторяющихся групп. Неделимость поля означает, что содержащиеся в нем значения не должны делиться на более мелкие. Вторая нормальная форма требует, чтобы все не ключевые поля (атрибуты) таблицы зависели от первичного ключа, чтобы первичный ключ однозначно определял запись и не был избыточен. То есть поля, которые зависят только от типичного ключа, должны быть выделены в составе отдельных таблиц. Также отношение должно удовлетворять первой нормальной форме. Третья нормальная форма требует, чтобы в таблице не имелось транзитивных зависимостей между не ключевыми полями, то есть чтобы значение любого поля, не входящего в первичный ключ, не зависело от значения другого поля, также не входящего в первичный ключ. Также отношение должно удовлетворять второй нормальной форме. Так же часто используется Нормальная Форма Бойса-Кодда (НФБК): Нормальная форма Бойса-Кодда является развитием третьей нормальной формы и направлена на достижение минимальности первичного ключа. Для того чтобы база данных находилась в НФБК, среди полей, используемых в первичном ключе, не должно быть зависимостей. Нормализация проводиться для того, чтобы устранить излишнюю избыточность из таблиц, однако не полностью избавить их от избыточности, а минимизировать ее в разумных пределах. Чем выше уровень нормализации, тем на большее число таблиц разбиваются сущности. Другим недостатком нормализованной базы данных является то, что при обращении к ней запрос должен считывать связанные данные из нескольких таблиц. Что, само собой, не добавляет производительности. Таким образом, при нормализации базы данных большого объема приходится идти на компромисс между избыточностью таблиц и удобством работы. Так же, нормализация базы данных увеличивает сложность построения запросов из-за большого количества связей между таблицами, что увеличивает время разработки приложения баз данных, требует более высокой квалификации персонала, обслуживающего базу данных, и может приводить к увеличению количества ошибок при построении запросов. 1.1.4 Проектирование баз данных методом “Сущность-связь” Модель “сущность-связь” основывается на некоторой важной семантической информации о реальном мире. Вводится специальный диаграммный метод как средство проектирования баз данных. Сущности изображаются прямоугольниками, связи в виде ромбов, ниже каждой сущности указывают атрибут или набор атрибутов, являющийся ключом сущности. Термины, используемые в ERметоде, не могут быть определены строго, тем не менее, их необходимо определить. Сущность - определяется как некий объект, представляющий интерес для пользователей БД. Например, одной из основных сущностей базы данных, описанной в данной работе, является Карточка. Связь - представляет собой взаимодействие между двумя или более сущностями. Например, одной из связей, присутствующей на ER-диаграмме данной работы является связь «имеет» между сущностями Персонал и Карточки. Атрибут есть свойство сущности. Например, одним из основных атрибутов Карточки, является ее номер. Ключ сущности это атрибут или набор атрибутов, значения которых однозначно определяют экземпляр сущности. Например, ключом сущности Карточки является её ID. Ключ связи набор ключей сущностей, соединяемых данной связью.
1.2.1 Описание системы «Borland Delphi 7» В качестве среды разработки для создания автоматизированной системы учета пациентов «ЦВМРД» была выбрана интегрированная среда разработки Borland Delphi 7 система программирования для быстрого создания приложений, содержащая множество разнообразных компонентов и дающая программисту возможность легко ими оперировать. Процесс создания интерфейса будущей программы напоминает манипуляции с компьютерным конструктором. Процесс разработки в Delphi 7 предельно упрощен. В первую очередь это относится к созданию интерфейса, на который уходит 80% времени разработки программы. Необходимо поместить нужные компоненты на поверхность Windows-окна (в Delphi оно называется формой) и настроить их свойства с помощью специального инструмента (Object Inspector). С его помощью можно связать события этих компонентов (нажатие на кнопку, выбор мышью элемента в списке) с кодом его обработки. Таким образом, Delphi 7, благодаря визуальным инструментам, позволяет быстро строить пользовательские интерфейсы, отвечающие принципам построения интерфейсов Microsoft Windows. Немаловажно, что разработчик, использующий Delphi 7, получает в свое распоряжение обширную палитру компонентов, мощные средства отладки (вплоть до пошагового выполнения команд процессора), удобную контекстную справочную систему, поддержку таких современных технологий программирования, как ActiveX, Web-service, создание распределенных приложений на базе СОМ и CORBA, Интернет- и intranet-приложений, используя для доступа к данным Borland DataBase Engine, ODBC-драйверы или Microsoft ADO. В основе Delphi лежит язык Object Pascal, который является расширением объектно-ориентированного языка Pascal. В Delphi также входят локальный SQL-сервер, генераторы отчетов, библиотеки визуальных компонентов и прочее. Всё это заставляет чувствовать себя совершенно уверенным при профессиональной разработке информационных систем или программ для Windows-среды. Как и положено строго типизированному языку, классы поддерживают только простое наследование, но зато интерфейсы могут иметь сразу несколько предков. К числу особенностей языка следует отнести поддержку обработки исключительных ситуаций (exceptions), а также перегрузку методов и подпрограмм (overload). 1.2.2 Структура среды программирования Внешний вид среды программирования Delphi отличается от многих других из тех, что можно увидеть в Windows. К примеру, Borland Pascal for Windows 7.0, Borland C++ 4.0, Word for Windows, Program Manager все это MDI приложения, и они выглядят по-другому, нежели Delphi. MDI (Multiple Document Interface) определяет особый способ управления нескольких дочерних окон внутри одного большого окна. Среда Delphi же следует другой спецификации, называемой Single Document Interface (SDI), и состоит из нескольких отдельно расположенных окон. Это было сделано из-за того, что SDI близок к той модели приложений, что используется в Windows 95. Если Вы используете SDI приложение типа Delphi, то уже знаете, что перед началом работы лучше минимизировать другие приложения, чтобы их окна не загромождали рабочее пространство. Если нужно переключиться на другое приложение, то просто щелкните мышкой на системную кнопку минимизации Delphi. Вместе с главным окном свернутся все остальные окна среды программирования, освободив место для работы других программ. 1.2.3 Главные составные части среды программирования Ниже перечислены основные составные части Delphi:
Рис. 1.1
Рис. 1.2
Рис. 1.3
Рис. 1.4 Есть и другие важные составляющие Delphi. К ним относятся линейки инструментов, системного меню, которые необходимы для точной настройки программы и среды программирования. Дизайнер Форм в Delphi интуитивно понятен и прост в использовании. Дизайнер Форм первоначально состоит из одного пустого окна, которое при необходимости заполняется всевозможными объектами, выбранными на Палитре Компонент. Несмотря на всю важность Дизайнера Форм, основной рабочей средой программистов является Редактор. С помощью редактора кодируются логические операции программы. Палитра Компонент позволяет выбрать нужные объекты для размещения их на Дизайнере Форм. Для использования Палитры Компонент необходимо кликнуть мышью на один из объектов и потом второй раз - на Дизайнере Форм. Выбранный объект появится на проектируемом окне и им можно манипулировать с помощью мыши. Палитра Компонент использует постраничную группировку объектов. Внизу Палитры находится набор закладок - Standard, Additional, Dialogs и т.д. Если кликнуть мышью на одну из закладок, то можно перейти на следующую страницу Палитры Компонент. Принцип разбиения на страницы широко используется в среде программирования Delphi и его легко можно использовать в своей программе. При помещение компонент TEdit на форму его можно двигать с места на место. Также можно использовать границу, прорисованную вокруг объекта для изменения его размеров. Однако, невидимые во время выполнения программы компоненты (типа TMenu или TDataBase) не меняют своей формы. Слева от Дизайнера Форм находится Инспектор Объектов. В зависимости от объекта, выбранного на форме, информация в Инспекторе Объектов меняется. Инспектор Объектов состоит из двух страниц, каждую из которых можно использовать для определения поведения данного компонента. Первая страница - это список свойств, вторая - список событий. При необходимости изменить что-нибудь, связанное с определенным компонентом, используется Инспектор Объектов. К примеру, для изменения имени и размера компонента TLabel нужно изменить свойства Caption, Left, Top, Height, и Width. Для переключения между страницами свойств и событий используют закладки внизу Инспектора Объектов. Страница событий связана с Редактором; если дважды кликнуть мышкой на правую сторону какого-нибудь пункта, то соответствующий данному событию код автоматически запишется в Редактор, сам Редактор немедленно получит фокус. После этого можно добавить код обработчика данного события. 1.3. Описание системы «Paradox 7.0» 1.3.1 СУБД Paradox Paradox - популярная СУБД, занимающая устойчивые позиции на рынке средств разработки настольных приложений с базами данных. Принцип хранения данных в Paradox сходен с принципами хранения данных в dBase - каждая таблица хранится в своем файле (расширение *.db), MEMO- и BLOB-поля хранятся в отдельном файле (расширение *.md). Формат данных Paradox не является открытым, поэтому для доступа к данным этого формата требуются специальные библиотеки. Многие эксперты приходят к выводу, что технология обработки информации, на которой базируется Paradox - это технология СУБД 90-х годов. Paradox фактически стал стандартом СУБД для персональных компьютеров. Среди многочисленных особенностей Paradox выделяют уникальное сочетание необычайной простоты и прозрачности с огромными возможностями функционально завершенной системы управления данными. И как результат такого уникального сочетания - мощнейшая СУБД подчиняется не только профессиональному программисту, но и пользователю, не имеющему ни малейшего представления о программировании или обработке информации на компьютере. 1.3.2 Происхождение Paradox Paradox был разработан компанией Ansa Software, и первая его версия увидела свет в 1985 году. Этот продукт был впоследствии приобретен компанией Borland. С июля 1996 года он принадлежит компании Corel и является составной частью Corel Office Professional. В конце 80-х начале 90-х годов Paradox, принадлежавший тогда компании Borland International, был весьма популярной СУБД, в том числе и в нашей стране, где он одно время занимал устойчивые позиции на рынке средств разработки настольных приложений с базами данных. 2. ПРАКТИЧЕСКАЯ ЧАСТЬ 2.1 Описание предметной области Проектируемая система учета пациентов предназначена для использования в ГБУЗНО «ЦВМРД». В её функции входит получение полной информации о пациентах, а также внутренней структуре центра. Ежедневно в ГБУЗНО «ЦВМРД» приходят на обследование и лечение десятки, а то и сотни людей. На каждого ребенка в регистратуре заводится личная карточка, у каждой карточки есть свой идентификационный номер. Медицинскому персоналу в любой момент может понадобиться узнать какие-либо данные о больном. Разработанная система способна автоматизировать и ускорить просмотр необходимой информации о ребенке путем ведения единой базы данных, в которой хранится вся информация о детях и внутренней структуре Центра, а также позволяет печатать отчеты по имеющимся данным. Система имеет простой интерфейс, что позволяет минимизировать время обучения персонала и ошибки при работе. 2.2 Основные требования к базе данных Разрабатываемый программный продукт должен выполнять следующие основные функции:
2.3 Функциональные требования к системе Для функционирования базы данных для ГБУЗНО «ЦВМРД» предъявляются следующие требования: процессор не ниже Intel Pentium IV; оперативная память 512 МБ; дисковое пространство 15 МБ; операционная система Windows ХР. 2.4 Требования к персоналу Для работы с базы данных пользователь данной системы, должен обладать навыками работы в среде ОС Windows ХР и изучить руководство пользователя данной базы данных. 2.5 Моделирование данных Моделирование данных важный этап построения хорошо функционирующей базы данных. Чтобы база данных справлялась с обеспечением необходимой информацией, ей требуется хороший проект и надежное основание, то есть модель данных. Если в модели данных будут дефекты, то дефекты проявятся и в самой базе данных при работе с ней. Модель данных, а в последующем и саму базу данных, следует проектировать таким образом, чтобы обеспечить гибкость и перспективы расширения. Моделирование данных обычно проводится в три этапа:
Сущности:
Атрибуты сущностей: Персонал (personal.db) Состав семьи (sostav_semii.db) Шифры болезней (shifri.db) Расписание (raspisanie.db) Процедуры (proceduri.db) Медикаменты (medikamenti.db) Оборудование (oborudovanie.db) Назначения на осмотр (naznachenie.db) Консультации (konsultacii.db) Карточка (kartochka.db) Анамнез (anamnez.db) Получение медикаментов (poluch.db) 2.7 Этапы проектирования
На этапе разработки концептуальной модели применяются диаграммы сущность-связь (ERD, Entity Relationship Diagram), позволяющие представить в графическом виде данные и требования к информации. ERD представляет собой концептуальную картину того, как, вероятнее всего, будет выглядеть база данных, какие данные будут в ней храниться и какую информацию можно будет из неё извлечь.
Логическое проектирование начинается с преобразования ERD в набор таблиц, при этом проводится их нормализация до третьей нормальной формы. На основе концептуальной модели ERD спроектируем таблицы, выполним их нормализацию и обеспечим целостность данных. При проектировании таблицы объекты концептуальной модели становятся таблицами, а их атрибуты столбцами этих таблиц. Определяется уникальный идентификатор ключ, однозначно определяющий запись, и производится нормализация таблиц.
Этап физического проектирования посвящен адаптации логической модели к специфической программной платформе и реализации базы данных. 2.8 ER-диаграмма На рисунке 2.1 изображена ER-диаграмма базы данных. Рис. 2.1 ER диаграмма базы данных 2.9 Схема данных На рис.2.2 изображена схема данных. Рис. 2.2 Схема данных 2.10 Руководство программиста База данных «ЦВМРД» разработана в визуальной среде программирования Borland Delphi 7, а в качестве СУБД использована стандартная система Paradox 7. Все таблицы, входящие в структуру базы данных, созданы в СУБД Paradox 7. В каждой таблице заданы поля, тип данных для каждого поля, указаны ключевые поля (одно или несколько в зависимости от типа таблицы). Рис.2.3 Пример таблицы anamnez.DB в Paradox 7 Интерфейс пользователя к базе данных разработан в среде программирования Borland Delphi 7. В первую очередь была разработана основная форма приложения Form1, которая предоставляет пользователю доступ ко всем таблицам базы данных. Эта форма имеет панель быстрого доступа (компонент TMainMenu) с кнопками. Для каждой кнопки реализован обработчик нажатия на эту кнопку, из которого вызывается соответствующая форма с необходимой таблицей. На остальных формах располагаются компоненты визуального представления данных с вкладки палитры компонентов DataControls. К ним относятся TDBGrid, TDBNavigator, TDBEdit, TDBLookupComboBox. Эти компоненты являются стандартными компонентами визуализации данных при работе с базами данных. На многих таблицах имеется компонент TMemo, текстовый редактор, который служит для отображения однострочного или многострочного текста. Также некоторые из форм имеют панель сортировки и поиска, на которой расположены компоненты TComboBox, TEdit, TButton, необходимые для осуществления сортировки и поиска в таблицах. В компонентах TComboBox выбирается параметр поиска или сортировки, в компонентах TEdit указываются критерии поиска, обработчики нажатия на компоненты TButton осуществляют поиск в таблице. На форме шаблона «Лист реабилитации» пользователю предоставлена возможность создания отчёта. Отчёт сделан средствами поставляемой вместе с Delphi 7 среды разработки отчётов Rave Reports 5. Для создания отчёта используются 6 компонентов с вкладки Rave: TRvSystem (осуществляет подключение среды Rave Reports), TRvProject (позволяет производить разработку и редактирование отчёта), TRvDataSetConnection (используется для подключения к отчёту источника данных), TRvNDRWriter (используется в сочетании с TRvRenderPrinter и TRvRenderPreview для сохранения отчета в файле специального бинарного формата (NDR) для последующей распечатки на принтере и предпросмотра),TRvRenderPDF(позволяет сохранить отчет в PDF-формат), TRvRenderText(позволяет сохранить отчет в txt-формат). При двойном щелчке на компоненте TRvProject открывается среда разработки отчётов Rave Reports, в которой осуществляется непосредственное создание отчёта (см. рис.2.4). Рис.2.4 Среда разработки отчетов Rave Reports В итоге отчёт будет выглядеть следующим образом, как показано на рис.2.5 Рис.2.5 Отчёт Rave Report Наконец, для доступа к физическим файлам таблиц, созданным в Paradox 7, используются компоненты доступа к данным с вкладки BDE и Data Access: TTable(предоставляет доступ к одной таблице), TQuery(позволяет произвольным образом (в рамках SQL) выбрать набор данных для работы с ним), TDataSource(действует как посредник между компонентами TDataSet (TTable, TQuery, TStoredProc) и компонентами Data Controls - элементами управления, обеспечивающими представление данных на форме). Для запуска самой базы данных был разработан лаунчер, выполняющий функции программы, запускающей приложения, который имеет кнопки входа и выхода, в случае ошибочного нажатия на файл запуска базы данных(рис.2.6). При нажатии на кнопку входа лаунчер закрывается, и открывается окно главной формы базы данных, сопровождающееся звуковым эффектом. Рис.2.6 Лаунчер Для доступа к адресу базы данных осуществляются следующие действия: procedure TForm1.Image2Click(Sender: TObject); begin ShellExecute(Application.Handle,PChar('open'),PChar('d:\project\cvmrd\Project1.exe'),Nil,Nil,SW_SHOW);//адрес бд MediaPlayer1.FileName := 'D:\project\muz.wav';//адрес звука MediaPlayer1.Open; MediaPlayer1.Play; end; procedure TForm1.Image3Click(Sender: TObject); begin Form1.Close; end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin sndPlaySound('D:\project\muz.wav', SND_LOOP or SND_ASYNC);//воспроизведение звука при входе в базу данных end; 2.11 Руководство пользователя Для начала работы с программой распакуйте архив на диск D и запустите файл “бд.exe” в папке лаунчер(см. рис.2.5). Рис.2.5 Файл запуска программы “бд.exe” Откроется лаунчер программы, при этом появится выбор между входом и выходом из программы. Ври выборе кнопки входа лаунчер автоматически закроется и откроется главное окно программы(рис.2.6). Рис.2.6 Главное окно программы Вверху основного окна располагается панель быстрого доступа с кнопками (см. рис.2.7). При нажатии на ту или иную кнопку вызывается окно с соответствующей таблицей или формой. Рис.2.7 Панель быстрого доступа с кнопками Для того, чтобы обратиться к таблице «Карточки», нажмите на кнопку «Пациенты» на панели быстрого доступа и выберите пункт «Карточки». При этом появляется окно с таблицей карточек (см. рис.2.8). Рис.2.8 Окно «Карточки» На этом окне располагается таблица Карточек, в которой представлены основные параметры: №карточки, ФИО, пол, адрес, учебное учреждение, инвалидность, телефон, №поликлиники. Вверху этого окна находится панель редактирования элементов таблицы и поиска по ФИО. Внизу есть возможность загрузить изображение полиса ОМС. На рис.2.9 приведен пример поиска по ФИО пациента. В результате курсор слева таблицы передвигается на соответствующее положение. Рис.2.9 Поиск по ФИО Рис.2.10 Ошибка поиска Необходимо обратить внимание на то, что кнопка «Пациенты» на панели быстрого доступа имеет также выпадающий список, который используется для доступа к таблицам (см. рис.2.11). Рис.2.11 Выпадающий список Для перехода к таблице Состава семьи нужно выбрать пункт меню «Состав семьи». При этом появляется окно, на котором расположена таблица состава семьи (см. рис.2.12). Рис.2.12 Окно «Состав семьи» Родителям присваивается номер карточки ребенка по ФИО, выбор которых осуществляется в верхнем правом углу. При необходимости пользователь может воспользоваться поиском по № карты ребенка данных родителей. Для перехода к таблице Анамнеза нужно выбрать пункт меню «Анамнез». При этом появляется окно, на котором расположена таблица «Анамнеза»( см. рис.2.13). Рис.2.13 Окно «Анамнез» Анамнезу присваивается номер карточки ребенка по ФИО, выбор которых осуществляется в верхнем правом углу. При необходимости пользователь может воспользоваться поиском по № карты ребенка. Для перехода к таблице Назначения на осмотр нужно выбрать пункт меню «Назначения на осмотр». При этом появляется окно, на котором расположена таблица «Назначения на осмотр»( см. рис.2.14) Рис.2.14 Окно «Назначения на осмотр» Заполнение таблицы происходит путём выбора номера карты пациента и ФИО врача-специалиста. При выборе номера карты в столбец «ФИО ребенка» заносится соответствующие ФИО, а при выборе ФИО врача - в столбец «Медицинская область» заносится его специальность. Для перехода к таблице Шифров болезней следует нажать на кнопку «Шифры болезней» на панели быстрого доступа основного окна приложения. При этом появляется таблица с шифрами (см. рис.2.15). Рис.2.14 Окно «Шифры болезней» Пользователь имеет возможность выбрать в нижней таблице выбрать интересующую его медицинскую область из всего списка верхней таблицы. Для перехода к таблице Персонала следует нажать на кнопку «Структура Центра» на панели быстрого доступа основного окна приложения, и выбрать «Персонал». При этом появляется таблица с персоналом (см. рис.2.15). Рис.2.15 Окно «Персонал» Для редактирования времени работы по четным и нечетным неделям необходимо бырать соответствующую смену в правом верхнем углу. Для перехода к таблице Расписания следует нажать на кнопку «Расписание» на панели быстрого доступа основного окна приложения. При этом появляется таблица с расписанием (см. рис.2.15). Для перехода к таблице Консультаций следует нажать на кнопку «Консультации» на панели быстрого доступа основного окна приложения. При этом появляется таблица с консультациями (см. рис.2.16). Рис. 2.16 Окно «Консультации» Пользователь имеет возможность выбрать ФИО врача в правом верхнем углу, в результате чего в столбец «Консультации специалистов» запишется специальность. Для перехода к шаблону «Выписка из реабилитационной карты» следует нажать на кнопку «Шаблоны» на панели быстрого доступа основного окна приложения, и выбрать «Выписка из реабилитационной карты». При этом появляется форма «Выписка из реабилитационной карты» (см. рис.2.15). Рис.2.15 Окно «Выписка из реабилитационной карты» Пользователь имеет возможность вывести шаблон на печать. Для перехода к шаблону «Дневник врача, специалиста» следует нажать на кнопку «Дневник врача, специалиста» на панели быстрого доступа основного окна приложения. При этом появляется шаблон «Дневник врача, специалиста» (см. рис.2.16). Рис.2.16 Окно «Дневник врача, специалиста» Поля ФИО и Должность пользователь заполняет путём выбора ФИО и должности из таблицы Персонала. В поле «Причины невыполнения» указывается начальная и конечная даты причины, и с помощью нажатия кнопки «кол-во дней» рассчитывается количество дней. Также имеется возможность вывести шаблон на печать. Для перехода к шаблону «Консультативное заключение» следует нажать на кнопку «Консультативное заключение» на панели быстрого доступа основного окна приложения. При этом появляется шаблон «Консультативное заключение» (см. рис.2.16). Рис. 2.16 Окно «Консультативное заключение» Поле «ФИО врача» пользователь заполняет путём выбора «ФИО врача» из таблицы Персонала, поле «ФИО ребенка» - путём выбора «ФИО ребенка» из таблицы Карточек. Также имеется возможность вывести шаблон на печать. Для перехода к отчёту «Лист реабилитации» следует нажать на кнопку «Лист реабилитации» на панели быстрого доступа основного окна приложения. При этом появится соответствующий отчёт(см. рис.2.17). Рис. 2.17 Окно «Лист реабилитации» Для добавления информации о ребенке, адресе и враче, необходимо внести необходимые данные в пустые поля, после чего нажать на соответствующие кнопки «Добавить ребенка», «Добавить адрес», «Добавить врача». Пользователь имеет возможность просмотреть полученный отчёт, нажав на кнопку «Показать», вывести на печать, нажав «Печать», и закрыть отчёт, нажав «Закрыть». При нажатии на кнопку «Показать» появится окно опции, изображенной на рис.2.18. Рис.2.18 Просмотр, печать или сохранение отчёта Для просмотра отчёта следует нажать кнопку «ОК» после чего появится окно со сформированным отчетом (см. рис.2.19), для печати выделить в «Report Destination» пункт «Printer» и нажать «ОК», сохранения в нужный формат выделить в «Report Destination» пункт «File», указать формат и путь сохранения, нажать «ОК». Рис. 2.19 Отчёт «Лист Реабилитации» Для перехода к таблице Информации о медикаментах следует нажать на кнопку «Медикаменты» на панели быстрого доступа основного окна приложения, и выбрать «Информация о медикаментах». При этом появляется форма «Выписка из реабилитационной карты» (см. рис.2.20). Рис. 2.20 Таблица «Медикаменты» Для перехода к таблице Получения медикаментов следует нажать на кнопку «Получение медикаментов» на панели быстрого доступа основного окна приложения. При этом появится таблица «Получение медикаментов»(см. рис.2.21). Рис.2.21 Таблица «Получение медикаментов» Заполнение таблицы происходит путём выбора ФИО врача из таблицы Персонала, и выбора ID_лекарства из таблицы Информации о медикаментах. Для перехода к таблице Оборудования следует нажать на кнопку «Оборудование» на панели быстрого доступа основного окна приложения. При этом появится таблица «Оборудование»(см. рис.2.21). Рис. 2.21 Таблица «Оборудование» Столбец «ФИО врача» заполняется путём выбора №кабинета в правом верхнем углу. Для перехода поиска следует нажать на кнопку «поиск» на панели быстрого доступа основного окна приложения. При этом появится поиск (см. рис.2.22). Рис. 2.22 Поиск Поиск осуществляется по двум таблицам базы данных «Карточки» и «Персонал». Поиск по персоналу осуществляется путём ввода в пустое поле ФИО или должности персонала, поиск по карточкам осуществляется путём ввода ФИО ребенка в соответствующее поле. Заключение В результате выполнения данной работы была разработана автоматизированная система учёта пациентов Центра восстановительной медицины в среде программирования Borland Delphi 7. Программа была разработана с использованием СУБД Paradox 7. Разработанный программный продукт предназначен для использования в Государственном Бюджетном Учреждении Здравоохранения Нижегородской области «Центр восстановительной медицины и реабилитации для детей». При всей сложности поставленной задачи приложение получилось достаточно эффективным и надежным в своей работе, простым и удобным в эксплуатации, доступным даже начинающим пользователям ПК, какими являются большинство сотрудников Центра. В отношении технических средств разработанная программа будет работать практически на всех современных ПЭВМ под управлением операционных систем поддерживающих реляционные СУБД. Это является одной из существенных положительных черт данного программного продукта. Поставленная задача выполнена в полном объеме. Список используемой литературы
Приложение А Листинг главной формы: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls, jpeg, ExtCtrls, ComCtrls; type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; N2: TMenuItem; N8: TMenuItem; Image1: TImage; Memo1: TMemo; Image2: TImage; N10: TMenuItem; N11: TMenuItem; N9: TMenuItem; N20: TMenuItem; N24: TMenuItem; N25: TMenuItem; N28: TMenuItem; N3: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N12: TMenuItem; N13: TMenuItem; N14: TMenuItem; N15: TMenuItem; N16: TMenuItem; procedure N2Click(Sender: TObject); procedure N24Click(Sender: TObject); procedure N28Click(Sender: TObject); procedure N29Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N25Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N16Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit2, Unit6, Unit7, Unit8, Unit4, Unit3, Unit5, Unit9, Unit10, Unit11, Unit12, Unit13, Unit15, Unit14, Unit17, Unit18, Unit19; {$R *.dfm} procedure TForm1.N2Click(Sender: TObject); begin Form2.Show; //вызов формы с таблицей карточек end; procedure TForm1.N24Click(Sender: TObject); begin Form6.Show; //вызов формы с шаблоном выписки из реабилитационной карты end; procedure TForm1.N28Click(Sender: TObject); begin Form7.Show; //вызов формы с шаблоном дневника врача, специалиста end; procedure TForm1.N29Click(Sender: TObject); begin Form8.Show; // вызов формы с шаблоном консультативного заключения end; procedure TForm1.N11Click(Sender: TObject); begin Form4.Show; //вызов формы с таблицей персонала end; procedure TForm1.N8Click(Sender: TObject); begin Form3.Show; //вызов формы с таблицей состава семьи end; procedure TForm1.N9Click(Sender: TObject); begin Form5.Show; //вызов формы с таблицей анамнеза end; procedure TForm1.N4Click(Sender: TObject); begin Form9.Show; //вызов формы с таблицей шифров болезней end; procedure TForm1.N10Click(Sender: TObject); begin Form10.Show; //вызов формы поиска end; procedure TForm1.N5Click(Sender: TObject); begin Form11.Show; //вызов формы с таблицей информации о медикаментах end; procedure TForm1.N7Click(Sender: TObject); begin Form12.Show; //вызов формы с таблицей оборудования end; procedure TForm1.N13Click(Sender: TObject); begin Form13.Show; //вызов формы с таблицей расписания end; procedure TForm1.N25Click(Sender: TObject); begin Form15.Show; //вызов формы с отчётом «Лист реабилитации» end; procedure TForm1.N14Click(Sender: TObject); begin Form14.Show; //вызов формы с таблицей процедуры end; procedure TForm1.N15Click(Sender: TObject); begin Form17.Show; //вызов формы с таблицей назначения на осмотр end; procedure TForm1.N6Click(Sender: TObject); begin Form18.Show; //вызов формы с таблицей получения медикаментов end; procedure TForm1.N16Click(Sender: TObject); begin Form19.Show; //вызов формы с таблицей консультаций end; end. Листинг формы «Карточки»: … procedure TForm2.Locate(Sender: TObject); begin if not Table1.Locate('FIO', Edit1.Text, []) then //проверка на существование ФИО в таблице ShowMessage('Запись не найдена'); end; procedure TForm2.FormCreate(Sender: TObject); begin DBGrid1.Columns[0].Title.Caption := '№карточки'; //переименование названий столбцов на кириллицу для возможности реализации запросов DBGrid1.Columns[0].Title.Font.Size := 10; DBGrid1.Columns[1].Title.Caption := 'ФИО'; DBGrid1.Columns[1].Title.Font.Size := 10; DBGrid1.Columns[2].Title.Caption := 'Пол'; DBGrid1.Columns[2].Title.Font.Size := 10; DBGrid1.Columns[3].Title.Caption := 'Адрес'; DBGrid1.Columns[3].Title.Font.Size := 10; DBGrid1.Columns[4].Title.Caption := 'Учебное_учреждение'; DBGrid1.Columns[4].Title.Font.Size := 10; DBGrid1.Columns[5].Title.Caption := 'Инвалидность'; DBGrid1.Columns[5].Title.Font.Size := 10; DBGrid1.Columns[6].Title.Caption := 'Телефон'; DBGrid1.Columns[6].Title.Font.Size := 10; DBGrid1.Columns[7].Title.Caption := '№поликлиники'; DBGrid1.Columns[7].Title.Font.Size := 10; end; procedure TForm2.Button2Click(Sender: TObject); begin if OpenPictureDialog1.Execute then Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName); //загрузка изображения end; end. Листинг формы «Шифры болезней»: procedure TForm9.Button1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT Nomer_shifra,Medicinsk_oblast,Naimenovanie_zabolevania,Standart_obsledovania,Standart_lechenia,kriterii_rezultatov,Srok_lechenia FROM shifri_diaznozov WHERE Medicinsk_oblast=:medicinsk_oblast'); //SQL запрос Query1.ParamByName('medicinsk_oblast').value:=Edit1.text; Query1.Open end; procedure TForm9.FormCreate(Sender: TObject); begin DBGrid1.Columns[0].Title.Caption := 'ID_шифра'; //переименование названий столбцов на кириллицу для возможности реализации запросов DBGrid1.Columns[0].Title.Font.Size := 10; DBGrid1.Columns[1].Title.Caption := 'Номер_шифра'; DBGrid1.Columns[1].Title.Font.Size := 10; DBGrid1.Columns[2].Title.Caption := 'Мед_область'; DBGrid1.Columns[2].Title.Font.Size := 10; DBGrid1.Columns[3].Title.Caption := 'Наименование_заболевания'; DBGrid1.Columns[3].Title.Font.Size := 10; DBGrid1.Columns[4].Title.Caption := 'Стандарт_обследования'; DBGrid1.Columns[4].Title.Font.Size := 10; DBGrid1.Columns[5].Title.Caption := 'Стандарт_лечения'; DBGrid1.Columns[5].Title.Font.Size := 10; DBGrid1.Columns[6].Title.Caption := 'Критерии_результатов'; DBGrid1.Columns[6].Title.Font.Size := 10; DBGrid1.Columns[7].Title.Caption := 'Срок_лечения'; DBGrid1.Columns[7].Title.Font.Size := 10; DBGrid2.Columns[0].Title.Caption := '№ шифра'; DBGrid2.Columns[0].Title.Font.Size := 10; DBGrid2.Columns[1].Title.Caption := 'Медицинская область'; DBGrid2.Columns[1].Title.Font.Size := 10; DBGrid2.Columns[2].Title.Caption := 'Наименование заболевания'; DBGrid2.Columns[2].Title.Font.Size := 10; DBGrid2.Columns[3].Title.Caption := 'Стандарт обследования'; DBGrid2.Columns[3].Title.Font.Size := 10; DBGrid2.Columns[4].Title.Caption := 'Стандарт лечения'; DBGrid2.Columns[4].Title.Font.Size := 10; DBGrid2.Columns[5].Title.Caption := 'Критерии результатов'; DBGrid2.Columns[5].Title.Font.Size := 10; DBGrid2.Columns[6].Title.Caption := 'Срок лечения'; DBGrid2.Columns[6].Title.Font.Size := 10; end; end. Листинг формы «Дневник врача, специалиста»: procedure TForm7.Button2Click(Sender: TObject); var d1, d2: TDate; //подсчёт количества дней, в результате которых не выполнен план begin d1:= DateTimePicker3.DateTime; d2:= DateTimePicker4.DateTime; Edit1.Text:=IntToStr(DaysBetween(d2,d1)); end; procedure TForm7.Button3Click(Sender: TObject); var d3, d4: TDate; begin d3:= DateTimePicker8.DateTime; d4:= DateTimePicker7.DateTime; Edit2.Text:=IntToStr(DaysBetween(d4,d3)); end; procedure TForm7.Button4Click(Sender: TObject); var d5, d6: TDate; begin d5:= DateTimePicker5.DateTime; d6:= DateTimePicker6.DateTime; Edit3.Text:=IntToStr(DaysBetween(d6,d5)); end; end. Листинг формы «Консультативное заключение»: procedure TForm8.DBLookupComboBox2Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT anamnez.Nomer_beremen,anamnez.Ishodi_pred_berem,anamnez.Nasledstvennost,anamnez.Donoshennost,anamnez.Prodolgit_rodov FROM anamnez JOIN kartochka ON (kartochka.nomer_kartochki=anamnez.ID_anamneza) WHERE kartochka.FIO=:fio'); //SQL запрос Query1.ParamByName('fio').AsString:=DBLookupComboBox2.text; Query1.Open end; Листинг формы «Лист реабилитации»: procedure TForm15.Button1Click(Sender: TObject); begin RvSystem1.DefaultDest:=rdPreview; //предварительный просмотр RvProject1.Execute; end; procedure TForm15.Button2Click(Sender: TObject); begin RvSystem1.DefaultDest:=rdPrinter; //вывод на печать RvProject1.Execute; end; procedure TForm15.Button3Click(Sender: TObject); begin close; //закрытие формы end; procedure TForm15.FormCreate(Sender: TObject); begin DBGrid1.Columns[0].Title.Caption := 'ID'; //переименование названий столбцов на кириллицу для возможности реализации запросов DBGrid1.Columns[0].Title.Font.Size := 10; DBGrid1.Columns[1].Title.Caption := 'Консультации специалистов'; DBGrid1.Columns[1].Title.Font.Size := 10; DBGrid1.Columns[2].Title.Caption := 'Номер кабинета'; DBGrid1.Columns[2].Title.Font.Size := 10; DBGrid1.Columns[3].Title.Caption := 'Число'; DBGrid1.Columns[3].Title.Font.Size := 10; DBGrid1.Columns[4].Title.Caption := 'Время'; DBGrid1.Columns[4].Title.Font.Size := 10; end; procedure TForm15.Button4Click(Sender: TObject); begin RvProject1.SetParam('Name',Edit1.text); //заполнение поля «ФИО ребенка» в Rave Report end; procedure TForm15.Button5Click(Sender: TObject); begin RvProject1.SetParam('Adres',Edit2.text); //заполнение поля «Адрес» в Rave Report end; procedure TForm15.Button6Click(Sender: TObject); begin RvProject1.SetParam('Vrach',Edit3.text); //заполнение поля «ФИО врача» в Rave Report end; end. Листинг формы поиска: procedure TForm10.Button1Click(Sender: TObject); begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('SELECT FIO,Dolgnost,Nomer_kabineta,Nomer_slugebnogo_tel,Nomer_sotovogo FROM vrachi_specialisti WHERE Dolgnost= :dolgnost or FIO=:fio'); //SQL запрос Query1.ParamByName('dolgnost').AsString:=Edit1.text; Query1.ParamByName('fio').AsString:=Edit1.text; Query1.Open end; procedure TForm10.Button2Click(Sender: TObject); begin Query2.Close; Query2.SQL.Clear; Query2.SQL.Add('SELECT FIO,Pol,Adres,Invalidnost,Telefon FROM kartochka WHERE FIO=:fio'); //SQL запрос Query2.ParamByName('fio').value:=Edit2.text; Query2.Open end; |
Автоматизированную информационная система учета пациентов «Центра восстановительной медицины и реабилитации для детей»