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) и читаемыйdefine.html;source/: источник в ODM, Excel и SAS;spec/sdtm-spec.xlsx: спецификация, по которой собран пакет;checks/checks.xlsx: отчёт проверок;sas/import.sas: читает все .xpt в WORK.
Проверки
Проверки (номера 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. Все права защищены. Пользовательское соглашение. Данные, которые вносят пользователи, принадлежат им.