CDISC: SDTM, ADaM, Define-XML
Источники, спецификация маппинга, сборка, проверки, лицензии и ограничения.
Конвейер CDISC превращает выгрузку из любой EDC в файлы, которых ждут спонсор, CRO и регулятор: сначала источник в форматах CDISC ODM, Excel и SAS, затем наборы SDTM и ADaM с Define-XML 2.1. Каждый шаг задаёт спецификация маппинга, которую можно прочитать, исправить и сохранить. ИИ не используется: одна и та же спецификация на одних и тех же данных всегда даёт один и тот же результат.
1. Загрузите выгрузку
Принимается один XML-файл ODM 1.3, или файлы CSV/XLSX по одному файлу или листу на форму («модульная» выгрузка), или один плоский файл, или ZIP с ними. Ключевые столбцы узнаются по названию:
- пациент: SUBJID, Subject, Patient, «Пациент», «Номер пациента»…;
- центр: SITEID, Site, «Центр»;
- визит: Visit, Folder, Event, InstanceName, redcap_event_name, «Визит»;
- строка формы-журнала: Line, RecordPosition, AESEQ, redcap_repeat_instance.
Остальные столбцы становятся полями. Тип данных (целое, дробное, дата, текст) определяется по значениям. Даты вида 05.03.2024, 2024-03-05 или 05MAR2024 распознаются. Служебные столбцы вроде «изменено» пропускаются.
Сразу после загрузки на вкладке «Источник» данные можно скачать как CDISC ODM 1.3.2 (метаданные и клинические данные в одном XML), Excel (лист на таблицу) и SAS (транспортный файл на таблицу и программа import.sas, которая назначает справочники как форматы SAS). Уже этого достаточно, чтобы перевести модульную или плоскую выгрузку в ODM.
2. Проверьте спецификацию
Спецификация предлагается по данным. Столбцы, названные по CDASH (AETERM, AESTDAT, VSORRES, SYSBP…), ложатся прямо в SDTM. Таблицы относятся к доменам по названию (AE, «Adverse events», «НЯ»…). В спецификации есть:
- настройки: STUDYID, шаблон USUBJID, COUNTRY, откуда брать планируемую группу, дату визита, даты согласия и рандомизации, окно для нежелательных явлений на фоне лечения и возрастные группы;
- домены: какие таблицы источника идут в DM, AE, CM, MH, EX, DS, SV, VS и LB, плюс наборы дизайна TA, TE, TV и TS;
- переменные: правило для каждой переменной SDTM (копия столбца, дата ISO 8601, константа, справочник, самая ранняя или поздняя дата, «продолжается», SUPP--, вычисляется, пусто);
- тесты: «широкие» столбцы показателей (столбец на тест, как обычно собирают витальные признаки) становятся записью на тест с кодом теста и единицей CDISC;
- соответствия: собранное значение и значение CDISC для каждого справочника, например «Лёгкая» в MILD. Пустые строки нужно заполнить;
- визиты, группы, исследование: VISITNUM, плановый день и эпоха, ARMCD, параметры сводки исследования.
Настройки, домены, соответствия и параметры исследования правятся прямо на странице. Остальное правится в Excel: скачайте спецификацию, измените и загрузите обратно. Кнопка «Предложить заново по данным» начинает с нуля, но сохраняет страну и параметры исследования.
3. Сборка
Одна сборка даёт весь пакет. Если спецификация ссылается на несуществующую таблицу или столбец, сборка останавливается и показывает список. Автоматически вычисляются: USUBJID, --SEQ, дни исследования, VISITNUM и VISIT, EPOCH, опорные даты DM (RFSTDTC, RFXSTDTC…), ARM и ACTARM, выбывшие на скрининге (ARMNRS), флаги исходного значения (--LOBXFL), признаки выхода за норму, стандартизованные результаты и наборы дизайна.
ADaM: ADSL (запись на каждого рандомизированного или получавшего лечение пациента: TRT01P/A, TRTSDT/TRTEDT, RANDFL, ITTFL, SAFFL, AGEGR1, EOSSTT, исходные рост, вес и ИМТ), ADAE (флаг возникновения на фоне лечения и флаги первого случая), ADVS и ADLB (AVAL, BASE, CHG, PCHG, ADY). Каждое вычисление описано в define.xml как метод.
4. Что вы скачиваете
sdtm/иadam/: наборы в транспортном формате SAS V5 (.xpt), CDISC Dataset-JSON 1.1 и Excel,define.xml(Define-XML 2.1) со стилевым файлом CDISC и читаемыйdefine.html, аннотированная CRFsdtm/acrf.pdf, черновикиcsdrgиadrgв Word и PDF;source/: источник в ODM, Excel и SAS;spec/sdtm-spec.xlsx: спецификация, по которой собран пакет;checks/checks.xlsx: отчёт проверок;sas/import.sas: читает все .xpt в WORK.
5. Пакет для FDA
После сборки на вкладке «Наборы и файлы» есть блок «Пакет для FDA». Кнопка «Папки подачи m5 (ZIP)» даёт раскладку модуля 5 eCTD, которую ждёт FDA:
m5/datasets/<исследование>/tabulations/sdtm/: наборы SDTM (.xpt),define.xml, стилевой файлdefine2-1-0.xsl,acrf.pdfиcsdrg.pdf;m5/datasets/<исследование>/analysis/adam/datasets/: наборы ADaM, ихdefine.xml, стилевой файл иadrg.pdf.
Аннотированная CRF (acrf.pdf) строится из формы и спецификации маппинга по рекомендациям SDTM Metadata Submission Guidelines: у каждого поля в цветной рамке переменная SDTM (у результатов тестов — «VSORRES when VSTESTCD = SYSBP», у дополнительных квалификаторов — «QNAM in SUPPAE»), вверху формы её домены, поля, которые не попадают в наборы, помечены [NOT SUBMITTED]. В начале оглавление по визитам и по формам с номерами страниц, в PDF есть закладки. define.xml ссылается на страницы aCRF у каждой собранной переменной (Origin «Collected»).
Руководства для ревьюера. cSDRG (для SDTM) и ADRG (для ADaM) — черновики по разделам шаблонов PHUSE. Всё, что знает сборка, уже заполнено: стандарты и версии, руки и визиты, наборы с классом, структурой и числом записей, дополнительные квалификаторы, методы ADaM, результаты проверок. То, что знает только спонсор, выделено жёлтым «[Sponsor to complete: …]». Скачайте Word, заполните и замените PDF в папке.
define.html — это вид define.xml через стилевой файл CDISC, построенный на сервере: он открывается в любом браузере без смягчения настроек безопасности.
Список готовности рядом показывает, что уже в порядке и что мешает: define.xml, aCRF, руководства, DM, дата начала исследования SSTDTC в TS, ASCII-текст, лимиты SAS V5, ошибки проверок. Тексты формы на русском дают предупреждение: FDA ждёт английский. Валидатор, которым пользуется агентство, запускаете вы сами и объясняете оставшиеся замечания в cSDRG.
Для PDF серверу нужна библиотека Pango (в нашем Docker она есть). Без неё пакет собирается без aCRF и PDF руководств, а список готовности об этом говорит.
Проверки
Проверки (номера YE-…) смотрят обязательные переменные, ключи и --SEQ, даты ISO 8601, начало позже окончания, контролируемую терминологию, ограничения SAS V5 (имена до 8 символов, метки до 40, значения до 200 байт), не-ASCII текст и структуру ADaM. Это наши собственные проверки, не правила CDISC CORE и не Pinnacle 21. Перед подачей прогоните валидатор соответствия, например открытый движок CDISC CORE.
Ограничения этой версии
- Медицинское кодирование берётся из ваших словарей. AEDECOD, AEBODSYS и иерархия MedDRA (AE, MH), а также CMDECOD с CMCLAS (CM, АТХ) заполняются из раздела «Медицинское кодирование»: загрузите туда лицензионную MedDRA вашей организации или полный АТХ и закодируйте термины. Сборка берёт только ваши решения и единственные точные совпадения, указывает словарь и версию в define.xml и перечисляет термины, которые ещё нужно закодировать. Без такого словаря эти переменные пусты, если в выгрузке нет кодированных столбцов. WHODrug пока не поддерживается.
- Значения остаются на языке сбора. FDA ждёт ASCII-текст в транспортных файлах, поэтому русские и французские дословные термины попадают в предупреждения.
- Нет пересчёта единиц и нет импутации неполных дат.
- Домены: DM, AE, CM, MH, EX, DS, SV, VS, LB, TA, TE, TV, TS и SUPP--. Другие домены пока не строятся.
- Контролируемая терминология: встроено подмножество для этих доменов. Полный выпуск, которым вы пользуетесь (файл NCI EVS «SDTM Terminology.txt»), загрузите на главной странице модуля.
Пакет — это черновик для проверки статистическим программистом, а не валидированная подача.
Стандарты и источники
- Стандарты CDISC (ODM 1.3.2, SDTM и SDTMIG 3.4, ADaMIG 1.3, Define-XML 2.1, Dataset-JSON 1.1): cdisc.org/standards;
- Контролируемая терминология CDISC, публикуется NCI EVS: evs.nci.nih.gov/ftp1/CDISC/SDTM;
- Транспортный формат SAS V5 и руководство FDA Study Data Technical Conformance Guide: fda.gov, ресурсы по стандартам данных;
- CDISC CORE (открытый движок правил соответствия): cdisc.org/core;
- Лицензии MedDRA: meddra.org.
© 2026 Т.Г. (contact@youedc.com), YouEDC. Все права защищены. Пользовательское соглашение. Данные, которые вносят пользователи, принадлежат им.
MainEDC™ — товарный знак DM365.