СПЕЦИАЛЬНЫЙ РАЗДЕЛ
Разработка структуры базы данных (БД) и алгоритмов обработки
ER диаграмма
На основе приведенного в первой главе анализа предметной области, была разработана ER-диаграмма (рис. 2), которая представляет собой визуальное представление концептуальной модели разрабатываемой БД.
Из описания предметной области были выделены три основные сущности:
Карта больного;
Диагноз;
Операции.
Для каждой из трех сущностей были определены первичные ключи.
Для сущности «Карта больного» первичным ключом будет «Номер истории болезни».
У сущностей «Диагноз» и «Операции» первичный ключ будет составным. Он включает в себя атрибуты:
«Номер истории болезни» и «Код заболевания» для сущности «Диагноз»;
и «Номер истории болезни» и «Шифр операции» для сущности «Операции». Так как каждому пациенту может быть поставлено несколько диагнозов, то, следовательно, степень связи сущностей будет «один ко многим». Аналогично со связью сущности «Операции». [5]
Класс принадлежности обоих многосвязных сущностей будет обязательным, так как не может существовать диагноза без больного и операция не может производиться без участия пациента.
Рис. 2. ER диаграмма.
3.1.2. Структура базы данных
Была разработана концептуальная модель базы данных, применяемая для хранения информации о выбывших пациентах. Данная модель приведена на рис. 3.
Рис. 3. Модель базы данных концептуальная. База данных состоит из трех таблиц:
«PACIENT» (содержит информацию о пациенте);
«PACIENT_DIAG» (содержит диагнозы заболеваний больного);
«PACIENT_OPER» (содержит информацию о проделанных больному операциях).
Осуществление связи между таблицами базы данных происходит по номеру истории болезни. Каждому выбывшему из стационара пациенту стоит в соответствие одна запись из таблицы «PACIENT». Так как больному в процессе наблюдения могло быть поставлено несколько диагнозов и проведено несколько операций, то выбывшему пациенту соответствует именно столько записей из соответствующих таблиц «PACIENT_DIAG» и «PACIENT_OPER». То есть существующая связь между таблицами «PACIENT» и «PACIENT_DIAG» является «один – ко многим». Аналогично и между таблицами «PACIENT» и «PACIENT_OPER».
Заполнение карты пациента в программе автоматизировано в целях уменьшения объема данных, отведенного для записи. Это значит, что при заполнении поля, по возможности, предоставляется выбор из выпадающего меню. Комплекс предоставленных на выбор альтернатив именуется справочником. Который же наполняется на самом раннем этапе эксплуатации программы. Типичные справочники иногда также именуют кодификаторами. Потому что у каждой альтернативы имеется в соответствии свой неповторимый код или номер. А значит, между ними существует взаимно-однозначное соответствие. В нашей базе данных хранятся именно эти коды, а не сами альтернативы.
3.1.3. Файловая структура таблиц
Каждая представленная ниже таблица включает:
файл(ы) данных;
файл(ы) индексов.
Таблица, которая хранит данные о пациентах, включает в себя файлы:
PACIENT.DB и PACIENT.PX;
PACIENT_DIAG.DB и PACIENT_DIAG.PX;
PACIENT_OPER.DB и PACIENT_OPER.PX.
Типы данных, встречаемые в таблицах:
А – Строка длиной не более 255 символов
D – Дата в диапазоне от 1 января 9999г. до н.э. до 31 декабря 9999г.
N – Число с плавающей точкой
M – Строка произвольной длины. Первые 240 символов хранятся в файле основной таблице, остальные – в файле с BLOB-данными
T – Время [6]
Таблица 1
Структура файла PACIENT.DB:
Имя
| Тип данных
| Длина
| Описание
| NIB
| A
| 7
| Номер истории болезни
| Family
| A
| 30
| Фамилия пациента
| IO
| A
| 30
| Имя и отчество пациента
| DataR
| D
| 8
| Дата рождения пациента
| HourR
| T
| 2
| Часы рождения пациента
| MinR
| T
| 2
| Минуты рождения пациента
| Vozrast
| N
| 2
| Код: Возраст
| Sex
| N
| 1
| Код: пол
| Ves
| A
| 6
| Вес пациента
| Adres
| A
| 60
| Домашний адрес пациента
| Rayon
| N
| 2
| Код: район проживания
| Gorod
| N
| 1
| Код: горожанин / селянин
| KUcher
| N
| 2
| Код: направившее учреждение
| KStac
| N
| 2
| Код: стационар
| KState
| N
| 2
| Код: государство
| Prichina
| N
| 1
| Код: причина направления
| KOtdel
| N
| 2
| Код: отделение стационара
| ProfilK
| N
| 2
| Код: койка
| Sost
| N
| 1
| Код: состояние при поступлении
| Interval
| N
| 1
| Код: поступление после болезни
| DataP
| D
| 8
| Дата поступления пациента в стационар
| HourP
| T
| 2
| Часы поступления пациента
| MinP
| T
| 2
| Минуты поступления пациента
| Ish
| N
| 1
| Код: исход пациента
| IshPrich
| N
| 1
| Код: причина исхода
| IshUcher
| N
| 2
| Код: учреждение для перевода пациента
| DataI
| D
| 8
| Дата исхода
| HourI
| T
| 2
| Часы исхода
| MinI
| T
| 2
| Минуты исхода
| VozrastSm
| N
| 2
| Возраст при смерти пациента
| Days
| N
| 2
| Кол-во дней проведенных в стационаре пациентом
| DiagNaprav
| A
| 4
| Диагноз в направлении
| KPostup
| N
| 1
| Код: число поступлений
| DataRW
| D
| 8
| Дата анализа реакции Вассермана
| RezRW
| N
| 1
| Код: Результат реакции Вассермана
| DoctorFIO
| N
| 2
| Код: ФИО врача, который лечил
| Индексное выражение для файла: NIB.
Таблица 2
Структура файла PACIENT_DIAG.DB:
Имя
| Тип данных
| Длина
| Описание
| NIB
| A
| 7
| Номер истории болезни
| KZabolev
| N
| 1
| Код: Заболевание пациента
| KDiag
| N
| 1
| Код: Диагноз пациента
| SHZabolev
| A
| 4
| Шифр заболевания
| NazZabolev
| M
| 10
| Название заболевания
| Индексное выражение для файла: NIB+ KZabolev. Таблица 3
Структура файла PACIENT_OPER.DB:
Имя
| Тип данных
| Длина
| Описание
| NIB
| А
| 7
| Номер истории болезни
| SHOper
| А
| 4
| шифр операции
| DataOper
| D
| 8
| дата операции
| NazOper
| M
| 10
| название операции
|
Индексное выражение для файла: NIB. 3.2. Алгоритм программы Разрабатываемая система позволяет автоматизировать заполнение формы о пациентах стационара и в дальнейшем генерировать отчёты на основе самой программы.
Взаимодействие программы с пользователем реализуется по ниже следующему алгоритму.
Сначала вводится текущая дата. Далее из главного меню мы можем выбрать одну из необходимых нам команд. Это может быть: ввод данных, печать, внесение поправок и изменений в ранее введенные данные, получение отчётных форм для стационара, либо выход из программы.
После выбора необходимой функции, надо вернуться в главное меню, нажав ОК или Отмена в зависимости от желаемого. Затем может быть произведен выбор другой функции.
Работа программы завершится, если будет выбрана команды «выход».
Данные, введенные ранее, могут быть откорректированы или подвержены изменениям при выборе команды «изменить». В программе так же предусмотрена настройка справочников. Каждый из справочников можно редактировать, удаляя старые и добавляя новые позиции. [7] Алгоритм, который был разработан для программы, показан на рис. 4.
Рис. 4. Алгоритм программы.
|