Overview
cdiscdata provides versioned CDISC reference data as a
standard R package:
- Controlled Terminology (CT): SDTM and ADaM CT from the NCI EVS FTP site, all historical versions in a single compact table.
- Define-XML schemas (XSD): For validating define.xml files.
- XSLT stylesheets: For rendering define.xml as HTML.
Discovering what is available
list_datasets()
#> dataset type ct_type
#> 1 ct_sdtm CT sdtm
#> 2 ct_adam CT adam
#> 3 ig_sdtm IG <NA>
#> 4 model_sdtm Model <NA>
#> 5 ig_adam IG <NA>
#> 6 cdash_model CDASH <NA>
#> 7 ig_cdash CDASH <NA>
#> 8 qrs_supplement QRS <NA>
#> 9 define_xml_schema Schema <NA>
#> 10 define_xml_stylesheet Stylesheet <NA>
#> description
#> 1 SDTM Controlled Terminology
#> 2 ADaM Controlled Terminology
#> 3 SDTMIG, SENDIG and related SDTM-side implementation-guide variable metadata
#> 4 SDTM model variable metadata
#> 5 ADaMIG and related ADaM implementation-guide variable metadata
#> 6 CDASH model variable metadata
#> 7 CDASH implementation-guide (CDASHIG) variable metadata
#> 8 QRS instrument supplement item metadata
#> 9 Define-XML XSD schemas
#> 10 Define-XML XSLT stylesheets
#> versions
#> 1 2007-03-06 to 2026-09-25
#> 2 2010-03-05 to 2026-09-25
#> 3 SDTMIG 3.1.2 to 3.4; SDTMIG-AP 1.0; SDTMIG-MD 1.0 to 1.1; SENDIG 3.0 to 3.1.1; SENDIG-AR 1.0; SENDIG-DART 1.1; SENDIG-GeneTox 1.0
#> 4 SDTM 1.2 to 2.1
#> 5 ADaMIG 1.0 to 1.3; ADaMIG-MD 1.0; ADaMIG-NCA 1.0; ADaM-ADAE 1.0; ADaM-BDS-TTE 1.0; ADaM-OCCDS 1.0 to 1.1; ADaM-popPK 1.0
#> 6 CDASH 1.0 to 1.3
#> 7 CDASHIG 1.1 to 2.3
#> 8 AIMS 2.0; APACHE_II 1.0; ATLAS 1.0; CGI 2.1; HAM-A 2.1; KFSS 2.0; KPS_SCALE 2.0; PGI 1.1; SIX_MINUTE_WALK 1.0
#> 9 2.0 to 2.1
#> 10 2.0 to 2.1
#> n_versions latest last_updated
#> 1 84 2026-09-25 2026-09-30
#> 2 27 2026-09-25 2026-09-30
#> 3 14 <NA> 2026-09-30
#> 4 9 <NA> 2026-09-30
#> 5 11 <NA> 2026-09-30
#> 6 4 <NA> 2026-09-30
#> 7 5 <NA> 2026-09-30
#> 8 9 <NA> 2026-09-30
#> 9 2 2.1 2026-09-30
#> 10 2 2.1 2026-09-30
cdiscdata_versions()
#> dataset type
#> 1 ct_sdtm CT
#> 2 ct_adam CT
#> 3 ig_sdtm IG
#> 4 model_sdtm Model
#> 5 ig_adam IG
#> 6 cdash_model CDASH
#> 7 ig_cdash CDASH
#> 8 qrs_supplement QRS
#> 9 define_xml_schema Schema
#> 10 define_xml_stylesheet Stylesheet
#> description
#> 1 SDTM Controlled Terminology
#> 2 ADaM Controlled Terminology
#> 3 SDTMIG, SENDIG and related SDTM-side implementation-guide variable metadata
#> 4 SDTM model variable metadata
#> 5 ADaMIG and related ADaM implementation-guide variable metadata
#> 6 CDASH model variable metadata
#> 7 CDASH implementation-guide (CDASHIG) variable metadata
#> 8 QRS instrument supplement item metadata
#> 9 Define-XML XSD schemas
#> 10 Define-XML XSLT stylesheets
#> latest n_versions last_updated
#> 1 2026-09-25 84 2026-09-30
#> 2 2026-09-25 27 2026-09-30
#> 3 <NA> 14 2026-09-30
#> 4 <NA> 9 2026-09-30
#> 5 <NA> 11 2026-09-30
#> 6 <NA> 4 2026-09-30
#> 7 <NA> 5 2026-09-30
#> 8 <NA> 9 2026-09-30
#> 9 2.1 2 2026-09-30
#> 10 2.1 2 2026-09-30Controlled Terminology
Retrieve the latest CT:
ct <- get_ct("sdtm")
nrow(ct)
#> [1] 47242
head(ct[, c("codelist_code", "codelist_name", "term", "decoded_value")])
#> codelist_code codelist_name term
#> 13 C100129 QSCAT <NA>
#> 18 C100129 QSCAT BPI
#> 23 C100129 QSCAT BPI SHORT FORM
#> 42 C100129 QSCAT COMM
#> 47 C100129 QSCAT C-SSRS BASELINE
#> 52 C100129 QSCAT FPSR
#> decoded_value
#> 13 CDISC Questionnaire Category Terminology
#> 18 Brief Pain Inventory Questionnaire
#> 23 Brief Pain Inventory Short Form Questionnaire
#> 42 Current Opioid Misuse Measure Questionnaire
#> 47 Columbia-Suicide Severity Rating Scale Baseline Questionnaire
#> 52 Faces Pain Scale Revised QuestionnaireRetrieve a specific historical version:
versions <- available_ct_versions("sdtm")
head(versions)
#> [1] "2026-09-25" "2026-03-27" "2025-09-26" "2025-03-28" "2024-09-27"
#> [6] "2024-03-29"
# Get CT as it was at the second-most-recent release
if (length(versions) >= 2) {
ct_old <- get_ct("sdtm", version = versions[[2]])
nrow(ct_old)
}
#> [1] 46774Define-XML schemas and stylesheets
schema_path("2.1")
#> [1] "/home/runner/work/_temp/Library/cdiscdata/extdata/schema/define-xml-2.1/define2-1-0.xsd"
stylesheet_path("2.1")
#> [1] "/home/runner/work/_temp/Library/cdiscdata/extdata/stylesheet/define2-1-0.xsl"Use get_dataset() as a unified entry point:
get_dataset("define_xml_schema", version = "2.1")
#> [1] "/home/runner/work/_temp/Library/cdiscdata/extdata/schema/define-xml-2.1/define2-1-0.xsd"
ct_via_generic <- get_dataset("ct_sdtm")
nrow(ct_via_generic)
#> [1] 47242
head(ct_via_generic[, c("codelist_code", "term", "valid_from", "valid_to")])
#> codelist_code term valid_from valid_to
#> 13 C100129 <NA> 2017-06-30 <NA>
#> 18 C100129 BPI 2019-09-27 <NA>
#> 23 C100129 BPI SHORT FORM 2019-09-27 <NA>
#> 42 C100129 COMM 2019-09-27 <NA>
#> 47 C100129 C-SSRS BASELINE 2019-09-27 <NA>
#> 52 C100129 FPSR 2019-09-27 <NA>