Сверка идёт сама —
врач ничего не запрашивает
Человек сдал анализы — и его результаты уже сверены. Не по запросу и не по одному пациенту: каждые сутки система забирает весь новый поток лабораторной системы, сопоставляет каждое значение с пороговыми константами клинических рекомендаций Минздрава России и обновляет очередь работы. Тем же заданием проходятся прошлые периоды — и тогда в очереди оказываются те, кто сдал анализы месяцы назад и в поле зрения диспансерного наблюдения так и не попал. Сочетания показателей в потоке ищет GigaChat — в жёстких границах, описанных ниже.
Не отчёт, а очередь работы
Врач не ищет, кого проверить, и не заводит запрос — очередь уже собрана за него. У каждой записи видно основание со значениями, единицами и датой, состояние по диспансерному наблюдению именно этого направления и следующее действие. Ниже — фрагмент реального интерфейса.
| Пациент | Все книги | Основание | ДН по книге | Следующее действие |
|---|---|---|---|---|
| Карта 40218 | ДЛП, МС | ЛПНП 4,7 ммоль/л · ТГ 2,4 анализы 18.09.2026 · было 4,1 → +0,6 |
отсутствие проверено | на контроль по ДЛП |
| Карта 40693 | ДЛП, СД, МС | HbA1c 6,8 % анализы 18.09.2026 · первое измерение |
требуется сверка | сверить ДН |
| Карта 41077 | ДЛП | ОХС 6,2 ммоль/л · ЛПВП 0,9 анализы 17.09.2026 |
подтверждено наблюдение | действий не требуется |
Наблюдение по одному заболеванию ничего не говорит про другое. Завершение работы по липидам не закрывает почки, и система этого не смешивает.
Если реестр не даёт ответа, запись так и написана: «требуется сверка» с причиной. Пустая книга объясняет, почему она пуста, вместо молчаливого нуля.
Результат сверки сохраняется с автором, временем и указанием источника. Массовое действие сначала показывает, кого затронет и кого пропустит.
Пять шагов от выгрузки до решения
Первые три шага автоматические. Последние два — работа врача, и система её не подменяет.
Поток из ЛИС
Выгрузка по расписанию, раз в сутки и без участия человека. История накапливается построчно и не переписывается задним числом.
Разбор потока
Профили идут пакетами: модель ищет сочетания показателей строго в границах матрицы ХНИЗ.
Книги направлений
Результат раскладывается по направлениям. Каждое ведётся отдельно, со своим состоянием.
Сверка с реестром ДН
Для каждого направления отдельно: состоит ли человек на наблюдении именно по нему.
Решение врача
Врач видит основания и решает сам. Система записывает, кто и когда решил.
Не только сегодняшний поток
Разбирается не только вчерашний день. Отдельным заданием система проходит прошлые периоды — за один прогон было обработано 93 даты с анализами за три с половиной месяца. Человек, сдавший анализы летом и с тех пор не попавший в поле зрения, оказывается в очереди вместе с сегодняшними.
У каждой записи видно, по анализам какого дня она возникла. Запись за 12 июня не выдаётся за сегодняшнюю: врач сразу понимает, насколько свежи данные и стоит ли звать человека на повторный забор.
Из 6 560 записей в книгах 4 659 приходятся на людей, которые сейчас не состоят на диспансерном наблюдении ни по какому поводу. Их показатели требуют внимания врача, а в поле зрения наблюдения они не попали.
| Направление | Записей в книге | Из них вне ДН | Доля |
|---|---|---|---|
| Липидный обмен | 3 361 | 2 735 | 81 % |
| Метаболический синдром | 2 225 | 1 564 | 70 % |
| Углеводный обмен | 974 | 360 | 37 % |
Данные по 94 датам анализов, 01.06–19.09.2026. Запись в книге — основание для врачебной сверки, а не вывод о заболевании: решение о наблюдении принимает врач.
GigaChat: что делает модель и чем она ограничена
Модель отвечает за то, что плохо ложится на фиксированное правило, — за поиск сочетаний показателей в потоке. Всё, что можно посчитать детерминированно, считается без неё: пороговые константы захардкожены и берутся только из нормативных документов.
Один вызов GigaChat-2-Max с популяционной сводкой по выборке и response_schema. За исторический прогон — 17 263 профиля за 2 196 запросов.
Модель отвечает строго по JSON Schema. Для каждого профиля отдельно перечислены допустимые основания: предложить направление вне этого словаря она не может — такой ответ отклоняется целиком, повтор разрешён один раз.
Ответ проверяется на выдуманные пороги: любое десятичное значение, которого не было во входных данных, отклоняет ответ. Проценты вероятности заболевания модель выдавать не вправе — соответствующие поля остаются пустыми.
В запрос уходят числовые значения с единицами — и всё. Не только без фамилии: без идентификатора пациента вообще. Каждому профилю присваивается случайный ключ, который живёт только внутри одного запроса.
Сопоставить ответ модели с человеком можно единственным способом — внутри контура больницы. Из самого запроса и ответа опознать пациента нельзя.
Расход резервируется до отправки и фиксируется по факту, включая отклонённые ответы. Период, матрица, единицы и версия алгоритма закреплены контрольными суммами: несовпадающее возобновление отклоняется.
| Что делается | Чем | Почему так |
|---|---|---|
| Сравнение с пороговой константой | код | Арифметика уровня калькулятора; результат обязан быть повторяемым |
| Поиск сочетаний в потоке | GigaChat | Комбинаторика показателей плохо покрывается фиксированным правилом |
| Необычность профиля | IsolationForest | Статистика относительно исторической выборки, а не суждение о болезни |
| Ссылка на нормативный документ | код | Вывод без ссылки на пункт документа технически невозможно создать |
| Решение по пациенту | врач | Система не участвует и фиксирует авторство решения |
Боевой поток, а не демонстрационный стенд
Система работает в городской больнице в Якутске на реальном потоке лабораторной системы. Ниже — обезличенные объёмы обработки, без каких-либо сведений о пациентах.
93 даты с анализами обработаны одним заданием с фиксированным лимитом: 2 196 запросов к GigaChat-2-Max и 3,83 млн тарифицируемых токенов.
Задание возобновляемое: остановка не теряет уже оплаченную работу, а повторный запуск не оплачивает её заново.
Раз в сутки по расписанию отрабатывает выгрузка из лабораторной системы, следом — разбор за прошедшие сутки. Никакого запроса от врача для этого не нужно: очередь обновляется сама.
Дата анализов и время обработки показываются отдельно: результаты за 18-е могли быть разобраны 20-го, и путать их нельзя.
Что система делает и чего не делает
Формулируем так же прямо, как в документации продукта: сдержанность здесь важнее эффектных обещаний.
- ✓Сверяет числовые значения с пороговыми константами нормативных документов и показывает, какой именно порог превышен.
- ✓Сопровождает ссылкой каждый вывод: без ссылки на пункт документа вывод технически не создаётся.
- ✓Показывает неопределённость: нехватку данных, неоднозначное совпадение с реестром и незавершённую обработку — вместо молчаливого нуля.
- —Постановка диагноза не входит в назначение системы. Вероятность заболевания не рассчитывается: поля остаются пустыми до валидации модели.
- —Не назначает лечение и не заменяет клиническую оценку врача.
- —Не подтверждает заболевание групповым действием: массовые операции ограничены сверкой с реестром и передачей под наблюдение, с обязательным предпросмотром.
СОВА является программным обеспечением справочно-информационного характера. Назначение СОВА — автоматизация рутинной сверки числовых значений лабораторных показателей с пороговыми константами нормативных документов Министерства здравоохранения Российской Федерации. СОВА не предназначен для постановки диагноза, назначения лечения, направления пациентов или иной медицинской деятельности. Все клинические решения принимает врач на основании собственной профессиональной оценки в соответствии с Федеральным законом от 21.11.2011 № 323-ФЗ. В соответствии с информационным письмом Росздравнадзора от 13.02.2020 № 02И-297/20 «О программном обеспечении», СОВА не относится к медицинским изделиям.
Контур медицинской организации
Приложение и база работают на сервере больницы. Наружу выходит только обращение к модели — по защищённому каналу и без персональных данных.
Речь не о том, что ФИО убраны из выдачи, — они не загружаются вовсе: в рабочей таблице результатов лабораторной системы заполненных фамилий ноль из 41 011 записей. Работа идёт по идентификатору.
В выгрузках дата рождения сокращается до года, видимость врача ограничена его участком.
Каждое обращение к данным пациентов пишется в журнал с цепочкой хеш-сумм: запись задним числом обнаруживается. Тела запросов не сохраняются.