Разработка AI-системы фармаконадзора (Pharmacovigilance AI)

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

Фармаконадзор AI: где ручной разбор сообщений ломается

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

Пока объём небольшой, ошибки кодирования почти незаметны: один специалист держит в голове трактовки и кодирует термины единообразно. При росте потока подключаются разные люди и дежурства, и один и тот же случай начинают кодировать по-разному. Дубликаты не отсеиваются, связь «препарат — реакция — исход» рвётся при копировании между системами, а очередь необработанных сообщений растёт быстрее, чем её успевают закрывать.

Цена проявляется в задержке отчётности: серьёзные случаи уходят в регламентный срок, измеряемый днями, а время тратится на чтение и разметку, а не на оценку сигнала. Просрочка и неполное сообщение — это уже не внутренняя метрика, а риск для регистрационного статуса. Хуже того, редкая связь «препарат — реакция» тонет в общей массе и обнаруживается на месяцы позже, когда когорта случаев уже собралась.

Разбираем, как это закрывается: извлечение сущностей и нормализация терминов по словарю снимают с человека рутину, маршрутизация по классу серьёзности выводит под ручной разбор только спорные случаи, а контроль качества и дедупликация не дают ошибкам кодирования накапливаться.

Измеримые эффекты: скорость, полнота, прослеживаемость

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

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

Прослеживаемость решений — то, что чаще всего интересует проверяющих. У каждого шага остаётся запись: какая версия модели дала подсказку, что она предложила, что подтвердил или исправил специалист, на какой версии словаря MedDRA выполнено кодирование. Ответ на вопрос «почему случай отнесли к серьёзным» собирается из журнала, а не восстанавливается по памяти.

Доля ручных операций падает прежде всего на сортировке и первичном разборе — самых массовых шагах. Уходит и класс отказов, связанных с человеческим фактором на рутине: просроченные сроки по случаям с неявной серьёзностью, потерянные дубликаты одного пациента, расхождения между формой E2B(R3) и внутренней карточкой. На выходе у команды остаётся один набор метрик, по которому видно, где именно нужна доработка.

Варианты организации: облако, контур клиента, гибрид

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

Сравнение схем

Вариант Когда подходит Ограничения
Облачный контур Обработка обезличенных данных вне периметра допустима, нужен быстрый запуск Псевдонимизация на входе; канал связи становится частью контура — нужен буфер и повторная отправка при обрыве
Контур заказчика Персональные данные не покидают инфраструктуру, есть свои мощности и служба эксплуатации Обновление моделей идёт через внутренние согласования; резервные копии и журнал доступа — на стороне заказчика
Гибридная схема Данные остаются внутри, обучение и обновление моделей — снаружи Две точки интеграции, синхронизация версий моделей, разграничение доступа между контурами

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

Этапы внедрения: от аудита процессов до передачи

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

  1. Аудит процессов фармаконадзора. Проходим по всем источникам — почта, порталы, литература, обращения контакт-центра, — фиксируем форматы, объём, задержки и то, кто принимает решение на каждом шаге. На выходе карта источников с частотой и качеством данных.
  2. Схема потоков данных. Согласуем целевую схему: что извлекается автоматически, что уходит на ручную проверку, где стоят точки контроля и как ведётся история изменений по каждому случаю.
  3. Настройка словарей. Подключаем медицинские словари и справочники, настраиваем сопоставление терминов, правила определения серьёзности, дублей и ожидаемости — на реальных примерах из архива заказчика.
  4. Правила маршрутизации случаев. Прописываем, кому и за какое время уходит каждый случай, как работает эскалация при просрочке, кто дежурит и что происходит при недоступности сотрудника.
  5. Приёмочные проверки. Прогоняем систему на исторических случаях с известным верным ответом: смотрим долю корректно разобранных, число ложных срабатываний и время до передачи дальше по процессу.
  6. Передача и обучение. Отдаём конфигурации, схемы и регламенты, обучаем команду, запускаем параллельный режим: система и специалисты работают одновременно, расхождения разбираются, и только потом ручной контур отключается.

Что остаётся у заказчика: конфигурации и регламенты

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

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

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

Разбор кейса: до и после на потоке сообщений

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

Что изменили

Разбор текста на русском и английском опирается на отраслевой справочник терминов; добавили правила дедупликации по ключевым полям и оценку уверенности для каждого признака. На ручную проверку уходят только случаи ниже порога уверенности. Результат собирается в структуру, совместимую с E2B(R3), — выгрузка в регуляторный контур не потребовала отдельной сборки.

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

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

Чем отличается сигнальный менеджмент от разбора случаев?

Разбор отдельного случая — это обработка одного сообщения: валидация, кодирование терминов по MedDRA, оценка серьёзности и причинно-следственной связи, отправка регулятору в срок. Единица работы здесь — сообщение, а проверка сводится к полноте и корректности конкретной записи.

Сигнальный менеджмент устроен иначе: он не разбирает сообщение, а агрегирует однотипные события по всей базе, сопоставляет наблюдаемую частоту с ожидаемой и отделяет статистический шум от нового риска. Единица работы — сигнал, а не случай, поэтому и данные, и сроки, и логика проверок здесь другие.

Контур Данные Сроки Что проверяет ИИ
Разбор отдельных случаев одно сообщение срок по критерию серьёзности пропуски полей, расхождения кодирования
Агрегация сигналов вся база за период цикл пересчёта рост частоты, неожиданные сочетания
Периодическая отчётность подтверждённые сигналы и сводка календарный период полнота и непротиворечивость сводки

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

Частые сомнения: фармаконадзор, AI и проверки

Технические сомнения по фармаконадзору редко звучат как «верим ли мы в AI» — чаще это вопрос, как система ведёт себя на границах: неоднозначный случай, нетипичная формулировка, накопленная база. Ниже — ответы на то, что обычно поднимают до старта.

Как система определяет серьёзность случая?

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

Что происходит с нераспознанными сообщениями?

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

Как отсекаются дубликаты сообщений?

Один случай приходит из разных источников в разных формулировках. Сопоставляем версии по сочетанию признаков — препарат, даты, реакция, данные пациента — и по близости текста. Совпавшие объединяются в один случай со ссылками на первичные сообщения, спорные пары уходят на ручное подтверждение.

Как проходит валидация и что делать с действующей базой?

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

Обсудим задачу: с чего начать в вашем контуре

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

  • Каналы поступления: перечень источников сообщений о нежелательных реакциях — спонтанные обращения, клинические программы, литература — и в каком виде они приходят сегодня.
  • Образцы данных: 30–50 обезличенных карточек и 2–3 разобранных сигнала целиком — на них проверяем достижимую полноту извлечения.
  • Эталон: если специалисты уже размечали случаи вручную, нужны пары «вход — проверенный ответ», иначе измерять качество не на чем.
  • Доступы: тестовый контур, учётные записи только на чтение, справочники препаратов и медицинской терминологии, правила обработки персональных данных.
  • Регуляторный контур: какие отчёты и в какие сроки формируются сейчас, кто согласует изменения и как устроена валидация системы.
  • Точка стыка: куда возвращаем результат — в действующую систему безопасности, в электронный документооборот или файловым обменом.

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

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139