Единая платформа для фармаконадзора
-
Вид услуги:
-
Технологии:
C#, ASP .NET 9.0, PostgreSQL
Год:
2022
О проекте
Через эту систему прошло больше 40 тысяч сообщений о нежелательных реакциях на лекарства. Мы её валидировали, клиенты заказчика проверяли её больше тридцати раз, регуляторы инспектировали больше десяти. В системе работают больше 190 сотрудников, она ведёт больше 300 держателей регистрационных удостоверений и больше 10 тысяч препаратов. Мы начали в августе 2022 года с одного реестра клиентов вместо Excel-файла и с тех пор не останавливались: последнее изменение структуры данных датировано 31 июля 2026 года.
Заказчик: организация, оказывающая услуги фармаконадзора производителям лекарств в России и странах ЕАЭС
Задача: заменить сотню разрозненных таблиц системой, в которой живут все операционные процессы компании
Старт: август 2022 года
Роль Nabla Lab: проектирование, разработка, валидация, сопровождение и развитие
Хостинг: на стороне заказчика
Права на систему: у заказчика, вместе с исходным кодом
Статус: промышленная эксплуатация, непрерывное развитие
Отрасль, в которой срок дороже удобства
Фармаконадзор начинается там, где заканчиваются клинические исследования. Препарат вышел на рынок, его принимают сотни тысяч людей, и кто-то должен собирать сообщения о нежелательных реакциях, оценивать их, искать сигналы и вовремя отчитываться перед регулятором. За производителя эту работу часто ведёт отдельная организация.
Правила здесь описывают не только результат, но и порядок работы. Срочное сообщение о нежелательной реакции уходит в регулятор за 24 часа. Периодический отчёт по безопасности подаётся к дате, посчитанной от международной даты регистрации. Мониторинг литературы проводится с заданной частотой, и его результат фиксируется в журнале установленной формы. Пропущенный срок здесь стоит дороже, чем неудобный интерфейс.
Именно поэтому у такой компании есть система менеджмента качества, а у каждого процесса в ней есть стандартная операционная процедура и учётная форма с номером и версией. Инспектор проверяет не рассказ о процессе, а записи.
Сто таблиц и понедельник, потраченный на обход кабинетов
В 2022 году вся эта работа держалась на Excel. У каждого отдела свои файлы, свои версии и свои правила заполнения. Данные об одном и том же клиенте лежали в десятке мест и расходились между копиями быстрее, чем их успевали сверять. Историю правок никто не вёл: узнать, кто изменил дату подачи отчёта и когда, было нельзя.
Отдельной болью был мониторинг АИС Росздравнадзора. У каждого держателя регистрационного удостоверения там свой личный кабинет, куда падают сообщения о нежелательных реакциях. Сотрудник заходил в каждый по очереди, выставлял период, смотрел количество сообщений, скачивал выгрузку и переносил результат в таблицу. Кабинетов десятки, и так каждую неделю.
Первое ТЗ по договору выглядело скромно: реестр клиентов, реестр регистрационных удостоверений, две роли и журнал операций. Срок на этап поставили три недели.
Девять этапов за десять месяцев
Дальше система росла по спецификациям к договору. Каждая содержала техническое задание, смету по часам и диаграмму Ганта на несколько недель.
| Этап | Что появилось |
|---|---|
| Август 2022 | Реестр клиентов и препаратов, роли, журнал операций, импорт и экспорт |
| Октябрь 2022 | Кабинеты семи отделов, около 28 журналов, разграничение доступа по отделам |
| Ноябрь 2022 | База данных медицинских изделий, база ветеринарных препаратов, реестр беременных |
| Ноябрь 2022 | Парсер личных кабинетов АИС Росздравнадзора, система проектов и задач |
| Декабрь 2022 | Отдельный контур проектов для медицинских писателей и рецензентов, 25 статусов документа |
| Январь — июнь 2023 | Около двухсот доработок с недельными сроками сдачи |
С апреля 2023 года мы ведём систему по договору сопровождения. Он действует до сих пор.
Журналы, которые на самом деле формы системы качества
Сегодня в системе 148 журналов. У 76 из них в названии стоит код учётной формы и номер версии. Такой код закреплён в стандартной операционной процедуре заказчика, и по нему проверяющий находит форму в документации системы качества.
Это и есть главное отличие проекта от обычной корпоративной системы. Мы переносили в код не абстрактные «таблицы клиентов», а конкретные формы, закреплённые в стандартных операционных процедурах заказчика. Когда процедура меняется, форма получает новую версию, и версия видна в системе. Журналы, выведенные из оборота, остаются доступны с пометкой «в архиве»: записи по ним нельзя потерять, даже если процесс больше не выполняется.
Журналы разложены по шестнадцати отделам, от работы с клиентами до контроля качества. Сотрудник видит кабинет своего отдела и те журналы, к которым ему открыли доступ.
Самый нагруженный журнал
Больше 40 тысяч сообщений о нежелательных реакциях прошло через журнал их регистрации. Сообщение приходит по телефону, почтой, из личного кабинета регулятора или от литературного мониторинга, попадает в журнал и дальше живёт по срокам: часть случаев требует подготовки срочной формы CIOMS за 24 часа, часть уходит на согласование держателю удостоверения, часть порождает запрос дополнительной информации.
Форма этого журнала пережила десять версий. Каждая новая версия появлялась после изменения процедуры у заказчика, и каждый раз мы переносили её в систему, не теряя ранее внесённых записей. Задачи по сообщениям система создаёт сама и сама проставляет им теги и сроки.
Валидация, аудиты и инспекции
Валидацию системы провели мы, по рекомендациям GAMP 5. В фармацевтической отрасли работающего кода мало: нужно документально подтвердить, что система делает то, что от неё требуется, делает это предсказуемо и воспроизводимо, а данные в ней достоверны, защищены и прослеживаемы.
Пакет валидационной документации собран полностью, от требований до финального отчёта:
- URS, спецификация требований пользователя;
- FS, функциональная спецификация;
- TS, техническая спецификация;
- RA, оценка рисков;
- IQ, квалификация монтажа;
- OQ, квалификация функционирования;
- PQ, квалификация эксплуатации;
- VR, отчёт о валидации.
Валидацию проводили дважды: при запуске системы и через два года в плановом порядке, как предусматривает валидационный мастер-план.
Систему больше тридцати раз проверяли клиенты и больше десяти раз инспектировали регуляторы. Ни одного заявления о соответствии стандартам мы в этом тексте не делаем, потому что в этой отрасли такие заявления стоят дорого. Валидация и пройденные проверки говорят сами за себя.
Проверяющий смотрит записи: есть ли форма, заполнена ли она, видно ли, кто и когда её менял, соответствует ли версия действующей процедуре. Записи о самих проверках тоже живут внутри системы, рядом с записями об отклонениях и о корректирующих действиях. Замкнутый контур: система хранит записи процессов и записи о проверках этих процессов.
Мониторинг регуляторных баз без участия человека
Обход личных кабинетов АИС Росздравнадзора мы автоматизировали в 2022 году. Сначала отдельным сервисом на Go, потом переписали на C# и перенесли внутрь планировщика.
Задание запускается по понедельникам в три часа ночи по Москве. Для каждой учётной записи оно поднимает отдельную сессию, авторизуется, запрашивает период за прошедшую неделю и, если сообщения появились, скачивает выгрузку. Результат ложится в журнал, из которого собирается готовый еженедельный отчёт по клиенту. Учётные данные хранятся в зашифрованном виде и не попадают ни в конфигурацию, ни в логи.
В августе 2026 года к еженедельному заданию добавилось расширенное: раз в две недели оно перепроверяет период глубиной в четыре месяца, чтобы поймать сообщения, появившиеся в кабинете задним числом.
Кроме России система следит за регуляторными базами Беларуси и Казахстана. Отдельно работает сверка препаратов клиента с государственным реестром лекарственных средств и с реестром, выданным по правилам ЕАЭС: сотрудник прикладывает выгрузку, система сопоставляет её с данными по номерам удостоверений и международным непатентованным наименованиям и отдаёт расхождения списком.
Тридцать пять заданий, которые следят за сроками
В системе работают 35 фоновых заданий. Они закрывают ровно ту задачу, из-за которой в фармаконадзоре теряют деньги и репутацию: не дать сроку пройти незамеченным.
Задания напоминают о плановых датах пересмотра сигналов, об истечении договоров, о письмах уполномоченного органа с требованием изменить инструкцию, о датах сверки клинических исследований, о сроках подготовки срочной формы CIOMS, о приближающихся датах мониторинга базы данных, о задачах и проектах, у которых подходит срок. Уведомления уходят на почту и в Telegram.
Плюс мелочи, из которых складывается ощущение живой системы: ежедневная рассылка дорожной карты, ежемесячная синхронизация материалов, напоминание о днях рождения контактных лиц клиентов.
Проекты и задачи: шесть разных контуров
Первую систему проектов и задач мы сделали в ноябре 2022 года. Через месяц выяснилось, что команде, которая готовит периодические отчёты по безопасности, нужен свой контур со своими статусами: у документа, который пишет медицинский писатель, жизненный цикл из двадцати пяти состояний, от сбора материалов через три круга рецензирования до подачи в регуляторный орган.
Сейчас таких контуров шесть, и каждый настроен под свой процесс. У каждого свои статусы проектов и задач, свои права, свои списки, своя статистика и своя диаграмма Ганта. Записи в журналах создают задачи автоматически: претензия клиента превращается в задачу для того подразделения, к которому она адресована, а сообщение о нежелательной реакции порождает задачу с проставленными тегами и сроком.
Кто что видит
Права собираются из четырёх источников: персональные права пользователя, права роли, права отдела и права функционального признака роли. Каждое право адресует один из 148 журналов и одну из десяти функций: просмотр, создание, изменение, удаление, привязка, комментирование, чек-боксы, полная видимость, редактирование всех полей, просмотр деталей строки.
С 2023 года в систему пускают и клиентов. Контактное лицо получает доступ из карточки своей компании и видит только её: данные компании, список регистрационных удостоверений и проекты, которые ведутся по нему. Сейчас в системе больше 400 контактных лиц клиентов.
Каждое изменение попадает в журнал операций. Система различает 411 типов действий, и для каждого хранит снимок записи до и после правки.
Что ещё внутри
- Техническая поддержка. Заявки сотрудников с трёхуровневым классификатором, ответственными, наблюдателями, учётом рабочего времени по производственному календарю и выгрузкой статистики. Уведомления идут в Telegram, задача при необходимости уходит в Jira.
- Обучение и проверка знаний. План запуска обучения по клиентам, тесты компетенций с попытками и ответами, протоколы ознакомления с внутренними документами.
- Документы системы качества. Стандартные операционные процедуры с группами и типами, учёт контролируемых копий, приказы, должностные инструкции, отклонения и ознакомление сотрудников с внутренними документами.
- Продажи. Лиды, сделки, шаблоны договоров и конструктор калькуляторов стоимости услуг.
- Управленческий учёт. Доходы и расходы, показатели KPI по ролям и сотрудникам, журнал сверки с бухгалтерией.
- Корреспонденция. Журналы учёта входящих и исходящих писем.
- Выгрузки. 87 экспортёров в Excel и отдельные генераторы документов Word: отчёт по сигналу, отчёт об отклонении, аудиторская форма для клиента, протокол обучения.
Как этим пользуются
Веб-аналитику здесь стоит читать иначе, чем на сайте-визитке. Это статистика рабочего места, за каждой цифрой стоит смена сотрудника.
С января 2023 по июнь 2026 года по данным Яндекс.Метрики:
- больше 3 млн просмотров страниц и около 350 тысяч сессий, в среднем 270 сессий в день;
- средняя сессия длится около 23 минут, в последние месяцы 27–28 минут;
- за сессию открывается около девяти страниц;
- отказов 2,4%.
Чаще всего открывают базу клиентов, журнал регистрации сообщений о нежелательных реакциях, планы-графики отчётности и списки проектов и задач. Это ровно те таблицы, с которых всё начиналось.
Четыре года без перерыва
Договор сопровождения действует с апреля 2023 года, и за это время мы ни разу не уходили из проекта. Спецификации на разработку продолжали подписывать поверх него, а система прибавляла целые направления, которых не было ни в одном из первых девяти технических заданий: техническую поддержку, документы СМК, продажи, управленческий учёт, регистрацию.
История миграций базы данных показывает ритм лучше любых слов. За последние десять месяцев мы изменяли структуру данных 96 раз. Последнее изменение датировано 31 июля 2026 года.
Технологии
Серверная часть написана на C# и работает на .NET 9 и ASP.NET Core MVC. Данные лежат в PostgreSQL, доступ к ним идёт через Entity Framework Core. Фоновые задания выполняет Quartz. Приложение разбито на двадцать изолированных областей по направлениям бизнеса, что позволяет добавлять модули, не задевая остальные.
Под этим проектом мы собрали семнадцать собственных библиотек Nabla, которые теперь переиспользуем: аудит изменений, выгрузка в Excel и Word, работа с файлами, почтовые рассылки, интеграция с Telegram, шифрование, хеширование, набор Razor-компонентов на Bootstrap, капча. Каждый следующий модуль собирается быстрее предыдущего, а заказчик получает предсказуемое поведение одинаковых элементов в разных частях системы.
Что мы поняли на этом проекте
Систему такого класса нельзя спроектировать заранее и сдать. Регуляторные требования меняются, процедуры получают новые версии, у заказчика появляются направления, которых не было год назад. Работает не большой первоначальный проект, а способность подрядчика четыре года подряд быстро вносить изменения, не ломая того, что уже проверено аудитами.
Права на систему и исходный код принадлежат заказчику. Вы владеете тем, за что заплатили.
Если вам нужна команда, которой можно доверить систему, живущую под регуляторным надзором, расскажите о своей задаче.
Давайте создавать вместе!
Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке
Контакты
Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78