Алгоритмы построения маршрутов пациентов: от диспетчерской до профильного отделения | AdminWiki

Алгоритмы построения маршрутов пациентов: от диспетчерской до профильного отделения

23 июля 2026 12 мин. чтения

Как работают алгоритмы маршрутизации пациентов: ключевые компоненты

Алгоритм маршрутизации в медицинской диспетчерской службе - это комплекс правил, который за секунды определяет оптимальное медучреждение для конкретного пациента. На вход подаются координаты вызова, диагноз или симптомокомплекс, приоритет срочности. На выходе - конкретный адрес больницы и расчетное время доезда. Решение принимается на основе трех слоев данных: пространственного (география и дорожный граф), клинического (профили отделений) и операционного (текущая загруженность).

Диспетчерская выступает точкой входа. Именно здесь происходит первичная обработка запроса и запуск цепочки принятия решений. Алгоритм не заменяет диспетчера, а дает ему просчитанный вариант. Человек подтверждает или корректирует выбор. При экстренных вызовах система может автоматически передать маршрут бригаде без промежуточного согласования.

Базовая блок-схема принятия решения выглядит так:

  1. Получение вызова: адрес, жалобы, приоритет.
  2. Геокодирование адреса - преобразование текста в координаты.
  3. Определение требуемого профиля отделения по диагнозу.
  4. Фильтрация доступных стационаров по профилю и радиусу обслуживания.
  5. Запрос оперативных данных: загруженность, свободные койки, доступность специалистов.
  6. Расчет времени в пути для каждого кандидата с учетом пробок.
  7. Ранжирование вариантов по интегральной метрике.
  8. Выдача рекомендации диспетчеру или напрямую бригаде.

Эта схема - каркас. В плановой госпитализации приоритет у загруженности и времени ожидания. В экстренной - у времени доезда и наличия реанимации. Но базовые компоненты неизменны.

Роль ГИС в медицинской маршрутизации: не только карты

Геоинформационная система дает алгоритму пространственный контекст. Без него невозможно рассчитать время в пути и определить, попадает ли адрес в зону обслуживания конкретной больницы. ГИС содержит несколько обязательных слоев данных.

Дорожный граф - это топология улиц с атрибутами: разрешенная скорость, класс дороги, повороты, развязки. Для медицинской маршрутизации критична актуальность данных о перекрытиях, ремонтах и пробках. Устаревший граф на сутки дает ошибку в расчете времени доезда на 15-20%. При инсульте это разница между сохранением функций мозга и инвалидизацией.

Геокодирование адресов преобразует текстовую строку «ул. Ленина, 15» в пару координат. Качество геокодера определяет точность позиционирования. Ошибка в 200 метров для плановой госпитализации некритична. Для экстренной - бригада может уйти на параллельную улицу и потерять минуты на поиск подъезда.

Зоны обслуживания - это полигоны, построенные по изохронам (линиям равного времени доезда). Алгоритм использует их для первичной фильтрации: если адрес не входит в 20-минутную зону кардиоцентра, этот вариант исключается из рассмотрения при инфаркте. Зоны пересчитываются динамически при каждом изменении дорожной обстановки.

Исторически ГИС в госсекторе развивались через системы типа ГИС ЖКХ. Они предоставляют документацию, регламенты и шаблоны для интеграции информационных систем. Хотя эти наработки напрямую не касаются медицинской логистики, они задают стандарты обмена пространственными данными и нормативной базой. Шаблоны Excel для массовой загрузки информации о медучреждениях, описанные в документации ГИС ЖКХ, можно адаптировать для первичного наполнения слоев больниц и отделений.

Источники данных о загруженности и профилях отделений

Пространственные данные - только половина картины. Алгоритму нужна оперативная информация о том, что происходит внутри больниц. Основной источник - медицинская информационная система. МИС хранит данные о коечном фонде, занятых и свободных койках в разрезе отделений, графиках работы специалистов.

Интеграция с МИС строится через API. Современный стандарт обмена медицинскими данными - HL7 FHIR. Он определяет ресурсы для описания пациентов, организаций, расписаний и слотов записи. Запрос к FHIR-серверу возвращает структурированный JSON с информацией о доступности отделения. Периодичность опроса зависит от сценария: для плановой госпитализации достаточно обновления раз в час, для экстренной - раз в минуту или потоковая передача изменений.

Региональные порталы здравоохранения - второй источник. Они агрегируют данные от нескольких учреждений и предоставляют единый API. Прямая интеграция с автоматизированными диспетчерскими службами дает самый оперативный срез, но требует согласования протоколов на уровне региона. Подробнее настройка таких интеграций разбирается в руководстве по настройке маршрутизации в МИС.

Нормализация данных о профилях - отдельная задача. Кардиологическое отделение в одной больнице может называться «кардиология», в другой - «отделение сердечно-сосудистой патологии». Алгоритм должен оперировать унифицированными кодами. Используйте справочник МКБ-10 для привязки диагнозов к профилям и внутренний маппинг названий отделений к единому классификатору.

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

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

Пошаговый алгоритм для планового случая:

  1. Из направления берется диагноз по МКБ-10. По справочнику определяется требуемый профиль отделения.
  2. Формируется список стационаров, имеющих отделения нужного профиля и попадающих в зону транспортной доступности (обычно 60-90 минут езды от адреса пациента).
  3. Для каждого кандидата запрашиваются метрики: коэффициент загрузки коечного фонда, среднее время ожидания госпитализации, доступность профильных специалистов на ближайшие 14 дней.
  4. Рассчитывается рейтинг. Веса назначаются в зависимости от политики учреждения. Типовая формула: 40% - время ожидания, 35% - загруженность, 15% - расстояние, 10% - наличие узких специалистов.
  5. Выбирается вариант с наивысшим рейтингом. Пациенту и направляющему врачу выдается слот для записи.

Пример: пациент с диагнозом I25 (хроническая ишемическая болезнь сердца), проживающий в районе Коптево. Алгоритм фильтрует кардиологические отделения в радиусе часа езды. Вариант А - городская больница в 20 минутах, но с загрузкой 94% и ожиданием 18 дней. Вариант Б - областной кардиоцентр в 50 минутах, загрузка 67%, ожидание 4 дня. При стандартных весах алгоритм рекомендует вариант Б. Пациент может скорректировать выбор в пользу близости к дому - система учтет предпочтение и покажет альтернативы.

Метрики для плановой маршрутизации: время ожидания и загруженность

Коэффициент загрузки коечного фонда - отношение занятых коек к общему числу развернутых коек по профилю. Значение выше 85% сигнализирует о риске отказа в приеме при экстренном поступлении. Для плановой госпитализации порог отсечения обычно устанавливают на уровне 90%: если загрузка выше, отделение исключается из выдачи.

Среднее время ожидания госпитализации рассчитывается как медиана по фактическим госпитализациям за последние 30 дней. Медиана устойчивее к выбросам, чем среднее арифметическое. Один пациент, прождавший 90 дней из-за редкой патологии, не должен искажать картину для типовых случаев.

Доступность специалистов - бинарный или количественный показатель. Для плановой кардиологии критично наличие аритмолога, если пациент направлен на РЧА. Алгоритм проверяет расписание врача через FHIR-ресурс Schedule и подтверждает, что в ближайшие 14 дней есть слоты для приема.

Агрегация и обновление метрик выполняется по расписанию. Для плановой маршрутизации достаточно ежечасного пересчета. Данные кэшируются в Redis или аналогичном хранилище, чтобы не нагружать МИС повторными запросами при массовой записи. Принципы организации такой маршрутизации с учетом нормативной базы 2026 года разобраны в руководстве по организации маршрутизации пациентов.

Экстренная эвакуация: динамическая маршрутизация с учетом приоритетов

Экстренная маршрутизация работает в условиях, где каждая минута влияет на исход. Алгоритм пересчитывает маршрут в реальном времени при поступлении каждого нового вызова, потому что загрузка отделений меняется постоянно. Бригада скорой помощи не должна приехать в стационар, который только что принял двух тяжелых пациентов и исчерпал ресурсы реанимации.

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

Ключевой сценарий - выбор между ближайшим стационаром и специализированным центром. При инсульте ближайшая больница может не иметь ангиографа для тромбоэкстракции. Алгоритм должен знать, что время доезда до инсультного центра на 15 минут больше, но пациент получит правильное лечение сразу, а не после перевода. Вес профильности для красного инсульта - 0.7, вес расстояния - 0.3. Для зеленого случая соотношение обратное.

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

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

Потоковая обработка - базовое требование к экстренной маршрутизации. События поступают непрерывно: новые вызовы, изменения статуса бригад, обновления загруженности стационаров. Классическая архитектура строится на Apache Kafka как шине событий и потоковом движке (Kafka Streams или Apache Flink) для обработки.

Поток вызовов направляется в сервис маршрутизации. Сервис держит в памяти кэш дорожного графа и кэш загруженности отделений. Кэш графа обновляется раз в 5 минут из ГИС. Кэш загруженности - по push-уведомлениям от МИС при каждом изменении статуса койки или операционной. Запаздывание данных о загруженности - главная причина ошибок маршрутизации. Если алгоритм оперирует срезом 10-минутной давности, он может направить бригаду в уже переполненное отделение.

Для поиска кратчайшего пути используется алгоритм A* с эвристиками. Эвристика учитывает не только геометрическое расстояние, но и класс дороги, типовую скорость в это время суток, исторические данные о пробках. Конкретная реализация зависит от ГИС-движка: OpenStreetMap с OSRM, GraphHopper, либо коммерческие решения вроде 2ГИС или Яндекс.Карт для бизнеса.

Типовые ошибки этого этапа: синхронные запросы к ГИС на каждый вызов вместо кэширования, отсутствие таймаутов (зависли на расчете маршрута - потеряли секунды), игнорирование пробок при расчете времени доезда для красного приоритета. Пробки игнорировать нельзя, но можно закладывать оптимистичную оценку: если пробка 7 баллов, время умножается на коэффициент 1.3, а не на 2.0, как для планового случая.

Критические метрики для экстренной маршрутизации

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

Доступность реанимации - бинарный флаг: есть свободное реанимационное место или нет. При красном приоритете отсутствие реанимации исключает стационар из выдачи, даже если он ближайший. Данные должны обновляться в реальном времени через интеграцию с АДС реанимационного отделения.

Наличие свободных операционных - критично для травм и острых хирургических патологий. Алгоритм запрашивает статус операционных: свободна, занята, освободится через N минут. Если пациенту требуется экстренная операция, а ближайшая доступная операционная освободится через 40 минут, алгоритм может выбрать более удаленный стационар со свободной операционной сейчас.

Интегральный показатель рассчитывается с весами, зависящими от приоритета. Для красного: время доезда - 0.5, доступность реанимации - 0.3, профильность - 0.2. Для желтого: время доезда - 0.3, профильность - 0.4, загруженность - 0.3. Веса настраиваются на исторических данных: берется 1000 вызовов за прошлый месяц, прогоняется через алгоритм с разными весами, сравниваются исходы. Конфигурация, давшая минимум летальных исходов и повторных госпитализаций, принимается в эксплуатацию.

Типовые ошибки при внедрении алгоритмов маршрутизации и как их избежать

Первая ошибка - неактуальные данные ГИС. Дорожный граф устаревает быстро: новые развязки, перекрытия, изменение схем движения. Если граф не обновлялся полгода, ошибка в расчете времени доезда достигает 30%. Решение: настроить автоматическую синхронизацию с OSM или коммерческим поставщиком картографических данных раз в неделю. Для оперативных изменений (перекрытия) - завести ручной интерфейс, через который диспетчер вносит правки за 30 секунд.

Вторая ошибка - отсутствие резервного плана при сбоях. Алгоритм зависит от цепочки сервисов: ГИС, МИС, шина событий. Отказ любого звена парализует маршрутизацию. Решение: деградация до статического справочника. Если API МИС недоступен, алгоритм использует последний известный срез загруженности с пометкой «данные устарели». Диспетчер видит предупреждение и принимает решение вручную. Если недоступна ГИС - используется предрассчитанная матрица расстояний между районами и стационарами.

Третья ошибка - игнорирование человеческого фактора. Диспетчеры годами работали по интуиции и неформальным правилам. Алгоритм, который выдает рекомендации без объяснений, вызывает отторжение. Решение: интерфейс должен показывать не только итоговый выбор, но и причины. «Рекомендована ГКБ №15: время доезда 12 мин, есть свободная реанимация, кардиологический профиль. Альтернатива: ГКБ №7, время доезда 8 мин, но нет мест в реанимации». Диспетчер видит логику и принимает осознанное решение. Постепенно доверие растет.

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

Пятая ошибка - внедрение без тестирования на исторических вызовах. Алгоритм запускается в продуктив и сразу дает сбои на реальных пациентах. Решение: обязательный прогон на массиве из 5-10 тысяч обезличенных вызовов за прошлый период. Сравниваются рекомендации алгоритма с фактическими решениями диспетчеров и исходами. Расхождения анализируются. Только после устранения систематических отклонений алгоритм выводится в режим рекомендаций, а затем - в автоматический режим. Методика такого аудита описана в чек-листе для аудита маршрутизации.

Практический чек-лист: готовность вашей организации к внедрению

Перед стартом проекта проверьте инфраструктуру по пунктам. Каждый пункт с ответом «нет» - это риск срыва сроков или некорректной работы алгоритма.

  1. Цифровая карта территории обслуживания. Дорожный граф актуален, обновляется автоматически. Зоны обслуживания стационаров оцифрованы и верифицированы.
  2. Интеграция с МИС. Настроен API для получения данных о коечном фонде, загруженности, расписании специалистов. Формат обмена - HL7 FHIR или согласованный проприетарный протокол.
  3. Справочник профилей отделений. Все отделения классифицированы по единому справочнику. Настроен маппинг диагнозов МКБ-10 на требуемые профили.
  4. Обучение диспетчеров. Персонал прошел тренинг по работе с интерфейсом маршрутизации. Диспетчеры понимают, как интерпретировать рекомендации алгоритма и когда следует переопределить решение вручную.
  5. Регламенты обновления данных. Задокументирована периодичность обновления каждого источника: дорожный граф - еженедельно, загруженность - в реальном времени, справочник отделений - при каждом изменении штатной структуры.
  6. Резервный контур. Настроена деградация при отказе каждого из внешних сервисов. Диспетчеры имеют доступ к статическим таблицам расстояний и последнему известному срезу загруженности.
  7. Тестирование на исторических вызовах. Проведен прогон алгоритма на массиве не менее 5000 обезличенных вызовов. Систематические расхождения с фактическими решениями проанализированы, веса скорректированы.
  8. Мониторинг и логирование. Настроены метрики: время ответа алгоритма, процент автоматически принятых рекомендаций, процент переопределений диспетчером, частота отказов внешних сервисов. Логи пишутся в централизованное хранилище с ротацией.

Если все пункты закрыты - организация готова к пилотному запуску. Начните с одного района и одного профиля (например, кардиология). Отработайте интеграции и регламенты в ограниченном масштабе. Затем расширяйте зону охвата. Для сценариев с массовым поступлением алгоритмы маршрутизации имеют свою специфику, которая разбирается в алгоритме маршрутизации при ЧС.

Отдельное направление развития - применение машинного обучения для прогнозирования загруженности и автоматической подстройки весов. Архитектура таких решений и практика внедрения описаны в руководстве по автоматизации маршрутизации с использованием ИИ.

Поделиться:
Сохранить гайд? В закладки браузера