Работа 02 · Медицинский центр

«Электронная медсестра»

Врач смотрит на пациента, а не в клавиатуру. ИИ слушает приём и сам готовит медицинскую документацию — врачу остаётся проверить.

1 экранвместо 3–7 страниц истории болезни
Пилот пройден
  • C# / .NET 10
  • WPF
  • ASP.NET Core
  • SignalR
  • Python
  • GigaAM
  • LLM
  • Firebird
Зачем

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

Что я сделал

Врач выбирает пациента и нажимает «Запись приёма», в конце — «Стоп». Дальше система работает сама, а врач получает готовый черновик: проверяет, правит и сохраняет.

Шаг 01

Запись

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

Шаг 02

Распознавание

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

Шаг 03

Анамнез

Все прошлые приёмы пациента у врачей разных специальностей сводятся в 1–2 строки на приём: жалобы, диагнозы, назначения. Раньше врач читал 3–7 страниц.

Шаг 04

Динамика анализов

5–15 страниц анализов за 5–8 лет превращаются в графики, отсортированные по важности: видны рост, снижение, скачки и нормализация показателей.

Шаг 05

Документация

Конвейер из нескольких шагов языковой модели заполняет шаблон приёма, выделяет диагнозы, которые поставил врач, и предлагает подсказки: возможные диагнозы, варианты лечения и назначений. Решение всегда принимает врач.

Шаг 06

Сохранение

После подтверждения врача приём записывается в медицинскую систему клиники.

Непростое

01

Шаги конвейера настраиваются без программиста: порядок, промпты, модели. Каждый ответ модели проверяется по JSON-схеме. Если что-то не сходится, приём помечается «нужна проверка» и в карту не уходит.

02

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

03

Чужая правка не потеряется

При сохранении черновика проверяется его версия: два человека не перезапишут изменения друг друга.

Стек
  • C# / .NET 10приложение врача на WPF, сервер на ASP.NET Core, SignalR для статусов в реальном времени.
  • Pythonраспознавание речи: FFmpeg, отсечение тишины, GigaAM.
  • Языковые моделилокальные, через собственный шлюз LLA Control (работа 05). Провайдер и модель для каждого шага выбираются в настройках конвейера.
  • Firebirdочередь задач и черновики приёмов.
Итог
1 экранвместо 3–7 страниц истории болезни

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

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

Видео
«Электронная медсестра» Пилот, в котором ИИ слушает приём и готовит документацию, — и честно о том, почему он не вышел в работу.