Документы и заверенные копии
В X7 Insight любой файл, который покидает систему, собирает сервер — не окно печати браузера. Кейсбук субъекта, журнал аудита, бланк ИРК, реестр запросов — все они формируются одним и тем же механизмом: вы нажимаете кнопку, сервер собирает документ в фоне и отдаёт файл. Результат не зависит от браузера, размера окна и настроек печати — документ один и тот же у всех, кто запросит его с теми же параметрами.
Такая копия называется заверенной (certified copy): копия, сохранённость и точность которой подтверждена самим процессом её создания. Платформа спроектирована под требования ICH E6(R3) и руководства EMA по GCP (2023) о заверенных копиях электронных записей.
Как формируется документ
Заголовок раздела «Как формируется документ»-
Нажмите кнопку документа — например, «Кейсбук (PDF)» на странице «Документы субъекта». Кнопка ставит задачу сборки и показывает, что документ формируется.
-
Сервер собирает документ в фоне. Экран остаётся рабочим; большие документы (кейсбуки, пакеты) собираются очередью.
-
Готовый файл скачивается автоматически — тем же нажатием кнопки. Если скачивание не удалось, документ не теряется: он лежит в журнале «Экспорты» исследования.
Каждый документ — это запись в журнале «Экспорты»: тип документа, параметры, автор, время, статус и контрольная сумма 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, спецификация) клинических данных не содержат и доступны каждому, кто читает дизайн исследования, — без права выгрузки. Отчёт о развёртывании несёт журнал жизненного цикла версии и требует права читать аудиторский след и запускать выгрузки.
Как проверить копию
Заголовок раздела «Как проверить копию»-
Откройте журнал «Экспорты» исследования — в строке документа есть контрольная сумма SHA-256 (полный хеш копируется в один клик).
-
Посчитайте контрольную сумму скачанного файла:
certutil -hashfile <файл> SHA256в Windows илиsha256sum <файл>в Linux/macOS. -
Совпало — файл в точности тот, что зафиксирован в журнале и аудите. Нет — файл повреждён при передаче: скачайте его заново из журнала.
Копия данных центра
Заголовок раздела «Копия данных центра»Руководство EMA по GCP (2023, §6.6) требует, чтобы исследователь мог в любой момент получить заверенную копию данных своего центра. В X7 Insight это шаг «Копии данных центрам» мастера закрытия (экран «Блокировки»):
- копия собирается по одному центру и содержит только его субъектов и события — кейсбуки, аудиторский след центра, запросы с тредами, подписи и табличные наборы CDISC;
- блокировка не нужна: копия собирается в любой момент жизни исследования;
- мастер показывает последнюю копию каждого центра — кем и когда собрана, скачана ли — и предупреждает, если после жёсткой блокировки свежей копии нет: до снятия доступа центр обязан получить свои данные.
Проверка пакета получателем
Заголовок раздела «Проверка пакета получателем»Пакеты закрытия и инспекции дополнительно проверяются офлайн, без доступа к системе. В состав пакета входит README с инструкцией; проверка запускается командой:
python -m x7core.tools.verify_package <пакет.zip>Команда сверяет SHA-256 каждого файла с манифестом пакета (лишних и отсутствующих файлов нет), проверяет манифест по схеме и пересчитывает хеш-цепочку аудита по аудиторскому следу из пакета. Вердикт печатается словами; код выхода 0 — пакет сходится, 1 — расхождение. Слепые значения идут в пакете маской, поэтому звенья цепочки с маской не пересчитываются — их число сообщается отдельно.