Перейти к содержимому
Как это устроено

Документы и заверенные копии

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

Такая копия называется заверенной (certified copy): копия, сохранённость и точность которой подтверждена самим процессом её создания. Платформа спроектирована под требования ICH E6(R3) и руководства EMA по GCP (2023) о заверенных копиях электронных записей.

  1. Нажмите кнопку документа — например, «Кейсбук (PDF)» на странице «Документы субъекта». Кнопка ставит задачу сборки и показывает, что документ формируется.

  2. Сервер собирает документ в фоне. Экран остаётся рабочим; большие документы (кейсбуки, пакеты) собираются очередью.

  3. Готовый файл скачивается автоматически — тем же нажатием кнопки. Если скачивание не удалось, документ не теряется: он лежит в журнале «Экспорты» исследования.

Каждый документ — это запись в журнале «Экспорты»: тип документа, параметры, автор, время, статус и контрольная сумма SHA-256 файла. Каждое скачивание дополнительно записывается в аудиторский след: кто, когда и какой именно файл получил. Получается проверяемая цепочка «данные → документ → контрольная сумма → получатель».

Документы для людей, а не машинные дампы:

  • колонтитулы — «Стр. X из Y», наименование документа, система и момент формирования;
  • отметка «Заверенная копия» — файл собран сервером из записей базы данных, его контрольная сумма зафиксирована в журнале выгрузок и аудиторском следе;
  • момент формирования — в UTC, а когда известен пояс центра — ещё и в нём: момент однозначен для читателя в любом часовом поясе;
  • значения словами — расшифровки кодлистов, единицы измерения, статусы словами; машинные идентификаторы в теле документа не показываются.

Файлы для печати и чтения с экрана — это PDF/A (ISO 19005, формат долгосрочного хранения) с тегами доступности PDF/UA-1: документ читается программами экранного доступа и выглядит одинаково через годы. Кейсбук субъекта — PDF/A-3: в тот же файл вложен машиночитаемый JSON-источник, и печатная копия живёт в одном носителе с данными, из которых собрана.

Документ Где кнопка
Кейсбук субъекта (PDF) Карточка субъекта → «Документы субъекта»
Журнал аудита субъекта (PDF) Карточка субъекта → «Документы субъекта»
Аудиторский след (XLSX / PDF / CSV) Экран «Аудиторский след» — по текущим фильтрам
Бланк ИРК (PDF) «Дизайн» → кнопки документов версии
Аннотированный ИРК — aCRF (PDF) «Дизайн» → кнопки документов версии
Спецификация (PDF / Excel) «Дизайн» → кнопки документов версии
Отчёт о развёртывании (ZIP) «Дизайн» → кнопки документов версии
Отчёт SDV, реестр запросов (XLSX / PDF) Экраны «SDV», «Запросы», «Мониторинг» — по фильтрам экрана
Копия данных центра (ZIP) «Блокировки» → «Копии данных центрам»

Подробности — на страницах соответствующих экранов (см. ссылки внизу).

Язык выбирается при формировании — например, на странице «Документы субъекта». Если язык не выбран, документ собирается на основном языке исследования. Это свойство самого документа, а не того, кто нажал кнопку: двое пользователей с разными языками интерфейса получат один и тот же файл.

Файл, покидающий систему, — это выгрузка. Поэтому:

  • клинические документы (кейсбук, журнал аудита, реестры, копия центру) собирает тот, у кого есть право запускать выгрузки в этой области, — обычно монитор, дата-менеджер и исследователь для своего центра. Аудитор спонсора с доступом «только просмотр» документов не формирует: он читает данные на экране, а материалы для инспекции готовит дата-менеджер;
  • документы дизайна (бланк ИРК, aCRF, спецификация) клинических данных не содержат и доступны каждому, кто читает дизайн исследования, — без права выгрузки. Отчёт о развёртывании несёт журнал жизненного цикла версии и требует права читать аудиторский след и запускать выгрузки.
  1. Откройте журнал «Экспорты» исследования — в строке документа есть контрольная сумма SHA-256 (полный хеш копируется в один клик).

  2. Посчитайте контрольную сумму скачанного файла: certutil -hashfile <файл> SHA256 в Windows или sha256sum <файл> в Linux/macOS.

  3. Совпало — файл в точности тот, что зафиксирован в журнале и аудите. Нет — файл повреждён при передаче: скачайте его заново из журнала.

Руководство EMA по GCP (2023, §6.6) требует, чтобы исследователь мог в любой момент получить заверенную копию данных своего центра. В X7 Insight это шаг «Копии данных центрам» мастера закрытия (экран «Блокировки»):

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

Пакеты закрытия и инспекции дополнительно проверяются офлайн, без доступа к системе. В состав пакета входит README с инструкцией; проверка запускается командой:

Окно терминала
python -m x7core.tools.verify_package <пакет.zip>

Команда сверяет SHA-256 каждого файла с манифестом пакета (лишних и отсутствующих файлов нет), проверяет манифест по схеме и пересчитывает хеш-цепочку аудита по аудиторскому следу из пакета. Вердикт печатается словами; код выхода 0 — пакет сходится, 1 — расхождение. Слепые значения идут в пакете маской, поэтому звенья цепочки с маской не пересчитываются — их число сообщается отдельно.