Перейти к содержимому

Что такое модули

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

Для клинического персонала это значит: набор функций в вашем исследовании зависит от того, какие модули включены. Управляет этим администратор арендатора в разделе Администрирование → Модули.

  1. Управляемый релиз оператораregister (манифест)
  2. Возможности согласованы (negotiation)enable
  3. Служебный принципал + грантывызовы
  4. Работа через ModuleContext.sdk.*
Путь модуля: от управляемого релиза до работы строго через SDK.

Дальше модуль работает только через ModuleContext.sdk.*: каждый такой вызов проходит проверку прав (PBAC) от имени служебного принципала модуля и аудируется с пометкой module_id — поэтому «модуль X в исследовании A» всегда отличим в следе от того же модуля в другом исследовании.

Модуль не «влезает» в ядро напрямую. Он подписывается на события (например, «сохранены данные»), ведёт собственное хранилище и добавляет свои экраны и панели в строго отведённые места интерфейса. Поэтому модули можно включать и выключать независимо, не ломая основной поток работы.

На практике вы встречаете модуль как:

  • панель на форме (например, панель кодирования сбоку от полей);
  • пункт навигации исследования (например, «Кодирование»);
  • действие или формат (например, выгрузку в ODM-XML в Export Console).

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

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

В диалоге «Согласие на capabilities» показаны две вещи:

  • Требуемые capabilities — какие возможности ядра нужны модулю (подписка на события, своё хранилище, свои экраны, фоновые задачи и т. п.);
  • Запрашиваемые гранты ядра — какие права модуль просит для своего служебного «пользователя», и зачем (каждый грант сопровождается человекочитаемой причиной: например, «чтение вербатимов для формирования очереди кодирования»).

Администратор подтверждает каждый пункт галочкой; включить модуль можно только после согласия со всеми. При этом администратор может сузить область (scope) любого гранта, но не расширить.

Модуль включается на арендатора целиком или на конкретное исследование. У каждого включения — свой отдельный служебный принципал, которому выдаются согласованные права. Благодаря этому один и тот же модуль может по-разному работать в разных исследованиях (свои настройки, свой scope), а аудит различает «модуль X в исследовании A» и «модуль X в исследовании B».

  1. Откройте Администрирование → Модули и выберите модуль — откроется его карточка с манифестом: возможности, права модуля, запрашиваемые гранты, события, вклады в интерфейс, настройки.

  2. Нажмите «Включить», выберите исследование (или весь арендатор).

  3. В диалоге согласия подтвердите каждую capability и каждый грант.

  4. При необходимости задайте настройки модуля (например, версию словаря для кодирования).

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

После включения настройки и журнал модуля доступны на той же карточке. Журнал — это аудиторский след: регистрация модуля и каждое включение/отключение фиксируются.

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

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

  • Медицинское кодирование — присвоение вербатимам терминов управляемых словарей (например, MedDRA, WHODrug).
  • Экспортёры форматов — выгрузка данных в специализированные отраслевые форматы поверх экспорта ядра.
  • Рандомизация и поставки (RTSM) — распределение субъектов по группам и учёт препарата.
  • eConsent / ePRO — электронное согласие и данные, вводимые самим участником.
  • Мониторинг — расширенные рабочие места и метрики очистки данных.