BC/NW 2018 № 2 (33):8.1

РАЗРАБОТКА И ИССЛЕДОВАНИЕ ПРОГРАММНЫХ СРЕДСТВ ДИСПЕТЧЕРИЗАЦИИ ЛЕЧЕБНОГО ПРОЦЕССА В САНАТОРНО-КУРОРТНЫХ УЧРЕЖДЕНИЯХ

Коротков А.А.

1.     Постановка задачи

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

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

1.     Провести анализ проблемной области.

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

3.     Разработать модуль автоматической диспетчеризации.

4.     Обоснование преимущества разработанного модуля от существующих.

2 Экономическая эффективность разработки

Основные показатели экономической эффективности рассчитаны согласно ГОСТ 24.702-85 [6] «Единая система стандартов автоматизированных систем управления. Эффективность автоматизированных систем управления. Основные положения».

Определены нормативные трудоёмкости на работы по созданию и дальнейшему развитию АС на основании ОСТ 4.071.030 [5] «Создание системы. Нормативы трудоёмкости». Рассчитаны затраты по стадиям создания АС согласно ГОСТ 34.601-90 [7] «Автоматизированные системы. Стадии создания».

Расчет трудоемкости создания и внедрения модуля

Для определения нормативных трудоёмкостей на те или иные операции используем отраслевой стандарт ОСТ 4.071.030 [5]. Согласно этому стандарту определяем степень новизны, группу сложности программ и задач разрабатываемой системы (табл. 1.).

Таблица 2.1 Характеристики новизны и сложности разрабатываемой системы

Класс

Описание

Степень новизны – 2

Создание АСУП на базе ЕС ЭВМ на основе внедрения головных проектов АСУП при условии их частичной доработки; развитие АСУП за счет заимствования проектных решений в случае неполного соответствия их условиям предприятия;

Группа сложности задач – 2

Алгоритмы, позволяющие решать задачи:

·                     оперативного планирования производством;

·                     текущего планирования и регулирования трудовыми и материальными ресурсами;

·                     управление технической подготовкой производства;

·                     нормативного и аналитического учета

Группа сложности программ – 1

Сложные логические программы, объединённые в систему программ; организующие программы; программы типа "Диспетчер"

Себестоимость разрабатываемого программного продукта складывается из текущих и капитальных затрат.

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

Затраты на разработку по элементам затрат:

1.                Затраты на оплату труда работников, непосредственно занятых созданием проекта, по данным таблицы 3, составят 347 652 руб.

2.                Затраты на отчисления по налогам составят:

2.1.         Пенсионный фонд РФ (22%): 347 652 * 0,22 = 76 483 руб.

2.2.         Фонд социального страхования (2,9%): 347 652*0,029 = 10 082 руб.

2.3.         Фонд обязательного медицинского страхования (5,1%): 347 652* 0,051 = 17 730 руб.

Общая сумма затрат на отчисления по налогам составит: 104 296 руб.

 

3 Алгоритм теории расписаний

Задачи составления расписаний возникают в частности:

·                   на производстве, когда нужно упорядочить отдельные операции по исполнителям (цеха, станки) и по времени;

·                   на транспорте при составлении расписания движения поездов, самолетов, общественного городского транспорта;

·                   при планировании занятий в учебных заведениях;

·                   при планировании занятости персонала, например, дежурства врачей;

·                   при выполнении сложных продолжительных проектов строительства зданий, кораблей и т.п.;

·                   при планировании проведения спортивных мероприятий;

·                   в компьютерных сетях при планировании очередности передачи пакетов информации и т.д.

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

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

Задача нахождения допустимого расписания

На одном процессоре требуется выполнить множество N = {1, 2,...,n} заданий. Для каждого задания j N определены длительность выполнения pj>0, время поступления задания на процессор rj ≥ 0 и крайний директивный срок Dj>0, к которому задание должно быть выполнено. Процессор готов к выполнению заданий с момента времени 0 и может выполнять одновременно только одно задание. Прерывания при выполнении любого задания запрещены. Необходимо построить допустимое расписание выполнения заданий, при котором все условия задачи соблюдены. То есть необходимо для каждого требования j N определить момент начала выполнения Sj такой, что Sj ≥ rj и момент окончания выполнения Cj = Sj +pj ≤ Dj. Причем если Sj <Si, то Sj +pj ≤ Si, где Si – момент начала выполнения другого задания i N, i = j.

В задачах ТР время задается в условных единицах. Параметры pj, rj, Dj, Cj, Sj могут измеряться в минутах, часах, днях и т.п. С точки зрения вычислительного процесса два примера - p1= 2 минуты, p2 = 3 минуты, r1 = 0 – нулевая минута, r2 = 1 – первая минута и, пример, где p1 = 2 часа, p2 = 3 часа, r1 = 0 – нулевой час, r2 = 1 – первый час, – являются идентичными, поэтому единицу измерения времени при определении задач опускают.

Задача нахождения оптимального расписания

Модифицируем предыдущую задачу следующим образом. Пусть крайние сроки Dj не заданы (т.е. Dj = +∞, j = 1, 2,...,n). Все остальные условия остаются теми же. Обозначим Cj – момент окончания выполнения задания j, т.е. Cj = Sj + pj, где Sj – момент начала выполнения задания j. Необходимо построить допустимое расписание, при котором значение функции   будет минимальным.

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

Определение 1 Задача, в которой все входные данные полностью определены, называется индивидуальной задачей.

Определение 2 Массовая задача – бесконечное множество индивидуальных задач. В дальнейшем мы будем называть массовую задачу просто задачей (например, «Задача коммивояжера»), а индивидуальную задачу – примером.

 

4 Формирование медицинских направлений

Разработка схемы направительного документа

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

Рис. 4.1 Конструктор форм (документов)

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

Рис. 4.2 Вид формы направительного документа

Далее разрабатываются:

Маршрут направительного документа,

Создают листы назначения и

 Предварительный план лечения

5 Ведение нормативно справочной информации для обеспечения системы автоматической диспетчеризация медицинских направлений

Администратор системы задает справочник группы ресурсов, по которым перемещается пациент (корпусов, этажей) (см. рис. 5.1).

Рис. 5.1 Справочник групп ресурсов

 

На основании созданного справочника группы ресурсов, администратор системы задает временной интервал для перемещения между группами ресурсов (попарно) (см. рис. 5.2).

Рис. 5.2 Расстояние между ресурсами

 

Затем администратор системы группирует ресурсы системы в соответствии со списком составленном на рис. 5.1 (см. рис. 5.3).

Рис. 5.3 Ресурсы по группам

На следующем этапе создается справочник несовместимости назначений. Выполняется формирование дополнительных разрешений и запретов.

 

6 Алгоритм обеспечения автоматической диспетчеризации

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

К параметрам автоматической диспетчеризации относятся:

·        Глубина диспетчеризации при курсовом назначении (дней) – задает временной промежуток, в течение которого система будет осуществлять поиск подходящего времени при курсовом назначении.

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

·        Временной параметр диспетчеризации:

o   Как можно раньше (до 12ч) – система будет автоматически подбирать время для всех выбранных назначений до 12ч каждого дня.

o   Как можно позже (после 12) - система будет автоматически подбирать время для всех выбранных назначений после 12ч каждого дня.

o   Как можно ближе к (± 2ч) – позволяет указать определенное время в интервале ±2ч от которого система будет автоматически подбирать время для всех выбранных назначений в течение каждого дня.

o   Произвольно – система будет выбирать первое свободное время для каждого ресурса в течение каждого дня.

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

В системе имеется возможность ручной корректировки результатов автоматической диспетчеризации (если необходимо). Сначала удаляется запись на прием которую надо скорректировать.

Затем осуществляется подбор времени в ручном режиме.

Алгоритм обеспечения автоматической диспетчеризации приведен на рис. 6.1

 

Рис. 6.1 Алгоритм обеспечения автоматической диспетчеризации

 

7. Тестирование работы алгоритмов автоматической диспетчеризации.

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

o   Как можно раньше (до 12ч) – система будет автоматически подбирать время для всех выбранных назначений до 12ч каждого дня. В этом режиме по результатам проверки надо визуально оценить, что все назначения в расписании пациента находятся во временном интервале до 12ч. с учетом несовместимости процедур и интервалов перемещения между корпусами/кабинетам.

o   Как можно позже (после 12) - система будет автоматически подбирать время для всех выбранных назначений после 12ч каждого дня. В этом режиме по результатам проверки надо визуально оценить, что все назначения в расписании пациента находятся во временном интервале после 12ч. с учетом несовместимости процедур и интервалов перемещения между корпусами/кабинетам.

o   Как можно ближе к (± 2ч) – позволяет указать определенное время в интервале ±2ч от которого система будет автоматически подбирать время для всех выбранных назначений в течение каждого дня. В этом режиме по результатам проверки надо визуально оценить, что все назначения в расписании пациента находятся во временном интервале ±2ч от выбранного нами для тестирования времени 14:00 с учетом несовместимости процедур и интервалов перемещения между корпусами/кабинетам.

o   Произвольно – система будет выбирать первое свободное время для каждого ресурса в течение каждого дня. В этом режиме по результатам проверки надо визуально оценить, что все назначения в расписании пациента подобраны с учетом несовместимости процедур и интервалов перемещения между корпусами/кабинетам.

Примеры реализации разработанной системы автоматической диспетчеризации

Для проверки алгоритма работы автоматической диспетчеризации создадим тестовый лист назначения тестового пациента (см. рис. 7.1).

Рис. 7.1 Лист назначения

Добавим два курсовых назначения, имеющих несовместимость (Ванна «Каракалла» и Грязевые аппликации по типу "брюк" см. рис. 7.2 – 7.3) и еще одно курсовое назначение с интервалом несовместимости (Лечебная гимнастика в бассейне ОДА см. рис. 7.4), а также два разовых назначения (ЭКГ и Терапевт консультация см. рис. 7.5 – 7.6).

Рис. 7.2 Направление. Ванна «Каракалла»  

Рис. 7.3 Направление. Грязевые аппликации по типу "брюк"

Расписание пациента до диспетчеризации (см. рис. 7.4).

Рис. 7.4 Лист назначения до диспетчеризации

Проведем тестирование алгоритма при выборе параметра «Как можно раньше (до 12)». Составленное расписание соответствует всем наложенным ограничениям и составлено с учетом заложенных в систему правил (см. рис. 7.5).

Рис. 7.5 Автоматическая диспетчеризация. Как можно раньше (до 12ч.)

На рис. 7.5 видно, что несовместимые в один день процедуры Ванна «Каракалла» и Грязевые аппликации по типу «брюк» алгоритм распределил на разные дни в расписании, несовместимые в течении 90мин. процедуры «Лечебная гимнастика в бассейне ОДА» и Грязевые аппликации по типу «брюк»  алгоритм распределил в один день с учетом этого интервала (Грязевые аппликации по типу «брюк» на 8:00, Лечебная гимнастика в бассейне ОДА 11:00), разовые назначения ЭКГ и Терапевт консультация были распределены  с учетом ограничения по времени до 12:00(ЭКГ 8:40, Терапевт консультация 10:00).

Проведем тестирование алгоритма при выборе параметра «Как можно раньше (после 12)». Составленное расписание соответствует всем наложенным ограничениям и составлено с учетом заложенных в систему правил (см. рис. 7.6).

Рис. 7.6 Автоматическая диспетчеризация. Как можно позже (после 12ч.)

На рис. 7.21 видно, что несовместимые в один день процедуры Ванна «Каракалла» и Грязевые аппликации по типу «брюк» алгоритм распределил на разные дни в расписании, несовместимые в течении 90мин. процедуры «Лечебная гимнастика в бассейне ОДА» и Грязевые аппликации по типу «брюк»  алгоритм распределил в один день с учетом этого интервала (Грязевые аппликации по типу «брюк» на 17:50, Лечебная гимнастика в бассейне ОДА 15:30), разовые назначения ЭКГ и Терапевт консультация были распределены  с учетом ограничения по времени до 12:00(ЭКГ 14:40, Терапевт консультация 16:50).

 

Заключение

На основании проделанного исследования, можно сделать следующие выводы: существующие медицинские автоматические диспетчеризации имеют множество недостатков, такие как временной параметр диспетчеризации, анализ загруженности ресурсов для удобства ручной диспетчеризации и другие недостатки, представленные в работе в ходе исследования существующих систем.  Время на диспетчеризацию одного листа назначения без внедрения составляет 30 минут на 10 позиций/60 минут на 20 позиций, а также некорректное соблюдение учета совместимости процедур.

 

Список литературы

1.     http://resortsoft.ru/index.html

2.     https://byport.by/?art=3_umnyi_sanatorii

3.     http://www.infosib.com.ru/dinam_reg

4.     http://oblteh.ru/sanatoriy-vozmozhnosti-sistemy.html

5.     ОСТ 4.071.030 «Создание системы. Нормативы трудоёмкости».

6.     ГОСТ 24.702-85 «Единая система стандартов автоматизированных систем управления. Эффективность автоматизированных систем управления. Основные положения». 

7.     ГОСТ 34.601-90 «Автоматизированные системы. Стадии создания»

8.     Лазарев А.А. Гафаров Е.Р. «Теория расписаний. Задачи и алгоритмы»