Электронная система сбора данных клинических исследований (эИРК)
-
Вид услуги:
-
Технологии:
C#, ASP .NET 8.0, PostgreSQL
Год:
2023
О проекте
Данные, собранные в этой системе, уходят в регуляторное досье на лекарственный препарат. На ней проведено больше семидесяти исследований биоэквивалентности и больше пятнадцати исследований II–IV фаз. Система прошла валидацию и неоднократно проходила внешние аудиты. Мы построили её с нуля в 2023 году и развиваем без остановок — последнее изменение структуры данных внесено на этой неделе.
Заказчик: организация, проводящая клинические исследования лекарственных препаратов (по условиям соглашения не называем)
Задача: собственная система сбора данных исследований вместо покупного решения
Старт: 2023 год
Роль Nabla Lab: проектирование, разработка, сопровождение и развитие
Хостинг: на стороне заказчика
Статус: промышленная эксплуатация, непрерывное развитие
Область, где нет права на ошибку
За каждым лекарством, которое доходит до аптеки, стоит клиническое исследование: сотни участников, десятки визитов, тысячи измерений. Собранные данные становятся частью досье, по которому регулятор решает, выйдет препарат на рынок или нет.
Требования к таким данным жёстче, чем к любой корпоративной системе. По каждой записи должно быть видно, кто её внёс, когда, что было до правки и почему её изменили. Не «желательно видно» — обязательно, и в любой момент, включая проверку через несколько лет после завершения исследования. Потерянная правка или необъяснимое расхождение способны затормозить исследование на месяцы.
К началу нашей работы заказчик уже собирал данные в электронном виде, но пользовался решением стороннего поставщика и платил за каждое проводимое исследование. Он хотел получить собственный инструмент — заточенный под свои процессы и без платы за каждый новый протокол. Мы спроектировали, разработали и запустили такую систему, и с 2023 года её сопровождаем.
Прослеживаемость: не журнал событий, а история каждой записи
Обычная система пишет лог: «пользователь такой-то изменил такое-то поле». Для клинического исследования этого мало — нужно уметь показать состояние данных на любой момент времени и объяснить каждый переход.
Мы решили это на уровне модели данных. У каждого объекта системы — от протокола и участника до отдельного поля формы — есть парная теневая таблица, где хранятся снимки его состояния. Запись о действии связывает два снимка: было и стало. Плюс кто, когда, под каким логином и какого типа было действие.
Таких типов действий в системе двести шестьдесят: не «изменено», а конкретно что именно произошло с конкретной сущностью. Записи об изменениях пишутся в той же транзакции, что и сами данные, — история не может разойтись с фактом.
Что это даёт заказчику: к любой проверке система готова всегда. Не нужно готовиться к аудиту, поднимать бэкапы и восстанавливать хронологию — она уже собрана.
Конструктор исследования вместо переписывания программы
Каждое клиническое исследование уникально: свой протокол, свои формы, свой набор показателей, своя логика визитов. Обычно под новое исследование дорабатывают программу.
Мы построили систему иначе. Формы собираются внутри платформы из готовых элементов: блоки, подблоки, группы, поля десяти типов — от чисел и дат до выпадающих списков и файлов. Кнопки, тексты, форматирование подписей, варианты ответов. Всё это настраивает команда исследования, без обращения к разработчику.
Поверх форм работает визуальный редактор логики. На холсте собираются узлы: расчёт значения по другим полям, условие, правило проверки, правило оформления. Из них строятся автоматические вычисления, контроль корректности при вводе и условное отображение — когда блок формы появляется или подсвечивается в зависимости от уже введённых данных.
Для бизнеса это означает простую вещь: новое исследование запускается настройкой, а не разработкой. Стоимость запуска не растёт вместе с числом протоколов.
Контроль качества данных
Система не просто хранит данные — она следит за их корректностью.
Часть проверок срабатывает при вводе: значение вне допустимых границ подсвечивается сразу. Границы лабораторных показателей ведутся в справочниках и учитывают пол участника — то, что нормально для одного, для другого выходит за референс.
Дальше работает механизм замечаний. Монитор или дата-менеджер оставляет к данным замечание, исследователь отвечает или опровергает его, переписка ведётся внутри системы и хранится вместе с записью. Пока замечание не закрыто, данные не переходят в проверенный статус. Каждый шаг этой переписки попадает в ту же историю изменений.
Результат — меньше ошибок, меньше ручных сверок и прозрачная история того, как разобрали каждое замечание.
Роли под реальную структуру исследования
В систему заложены одиннадцать ролей, повторяющих реальную команду: администратор, исследователь, главный исследователь, монитор, медицинский монитор, дата-менеджер, аудитор контроля качества, специалист по фармаконадзору, спонсор, менеджер проектов, терапевт. Каждый видит и меняет только то, что положено его роли. Доступы выдаются в разрезе конкретного протокола и центра.
Что ещё внутри
Многоцентровые исследования. Центры, их привязка к протоколам, главные исследователи по каждому центру.
Версии протокола. Система хранит снимки версий протокола вместе с приложенными файлами: видно, по какой редакции работали в каждый момент.
Рандомизация. Группы рандомизации и распределение участников по ним.
Словарь MedDRA. Медицинские термины ведутся по международному словарю с полной иерархией уровней — от системно-органного класса до низшего уровня. Это то, на чём говорит вся отрасль, и без чего данные невозможно сопоставить между исследованиями.
Модель под дизайн исследований. Скрининг, критерии включения, анамнез, физикальный осмотр, амбулаторные и стационарные визиты, отдельные формы первого и второго дня госпитализации. Фазы: биоэквивалентность, II, III, IV.
Страховые организации. Учёт страхования участников исследования.
Данные, готовые к анализу
Когда исследование доходит до анализа, данные нужно отдать статистикам в удобном виде. Пользователь сам настраивает выгрузку: какие показатели, в каком порядке, с какой фильтрацией, со сводными расчётами. Есть конструктор таблиц и шаблоны агрегированных выгрузок. Выгрузка идёт в Excel и Word, печатные версии карт формируются в один клик.
Валидация и аудиты
В клинических исследованиях невалидированную систему не рассматривают всерьёз. Мы прошли этот путь вместе с заказчиком: система валидирована, валидационная документация ведётся и поддерживается в актуальном состоянии.
Дальше начинается то, что отличает работающую систему от красивой. Платформа неоднократно проходила внешние аудиты. Замечания иногда были, и каждое устранялось в рабочем порядке.
Это и есть настоящая проверка. Не наши слова о надёжности, а то, что систему смотрели снаружи люди, которым платят за поиск проблем, и она продолжает работать.
Как устроено внутри
Дальше — техническая сторона.
Серверная часть на .NET и ASP.NET Core, данные в PostgreSQL, развёртывание в контейнерах Docker. Система живёт на инфраструктуре заказчика: медицинские данные не покидают его контур, и это принципиально для многих спонсоров исследований.
Решение разбито на шестнадцать проектов с чёткими границами: API, модели, слой данных, миграции, экспорт в Excel и Word, конструктор агрегированных выгрузок, рассылки, конфигураторы, набор внутренних библиотек для авторизации, валидации и разметки. Движок выгрузок не знает про веб, слой данных не знает про представление.
Механика прослеживаемости встроена в слой данных, а не размазана по коду: восемьдесят семь теневых таблиц-снимков и отложенная запись действий в общей транзакции. Разработчик не может случайно сохранить данные мимо истории.
Доступ защищён аутентификацией по токенам с отдельной проверкой истёкших, права разграничены на уровне операций, формы закрыты капчей.
С ноября 2023 года структура данных обновлялась сто один раз. Последнее обновление — 31 июля 2026 года.
Партнёрство, а не разовый проект
Мы запустили платформу в 2023 году, и работа на этом не закончилась. Заказчик проводит на ней исследования год за годом, а мы продолжаем добавлять функциональность под новые задачи и обеспечивать стабильную работу.
Больше семидесяти исследований биоэквивалентности и больше пятнадцати исследований II–IV фаз — это и подтверждение надёжности, и мера выгоды: под прежней моделью каждое из них означало бы отдельный платёж стороннему поставщику.
Не единственная система для этого заказчика
Эта система работает с данными, которые собирают во время исследования. Всё, что происходит до его начала, закрывает другая система, построенная нами для того же заказчика: онлайн-запись добровольцев и мобильное приложение, база респондентов, планирование интервью, регламентные журналы, учёт участников. [[ссылка на кейс, когда опубликуете]]
Вместе они покрывают процесс целиком: от объявления, по которому пришёл доброволец, до данных, которые уходят в регуляторное досье на препарат.
Заказчик работает с нами с 2023 года и возвращался с новыми системами. При выборе подрядчика это значит больше, чем любой перечень функций.
Почему это важно для вас
Есть системы, где ошибка стоит неудобства, и есть системы, где ошибка стоит регуляторных последствий. Мы умеем работать со вторыми: разобраться в отраслевых требованиях, спроектировать под них архитектуру, пройти валидацию и держать систему в форме годами, пока её смотрят внешние аудиторы.
Ещё мы строим инструменты внутри продуктов — визуальные среды, где ваш пользователь настраивает логику сам, без разработчика. Такую среду мы делали дважды: здесь и в платформе расчёта смет для строительного рынка, в совсем другой отрасли.
Если вы ищете команду, которой можно доверить сложную, ответственную и долгоживущую систему, — расскажите о своей задаче.
Давайте создавать вместе!
Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке
Контакты
Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78