Электронная система сбора данных клинических исследований (эИРК)

-

Вид услуги:

-

Технологии:

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