Validation of ADaM Data Sets

Overview

Validation of CDISC ADaM data sets in the SAS Clinical Standards Toolkit uses the same validation methodology used for other standards. Within the global standards library, registering each standard includes setting the flag supportsvalidation in the metadata standards data set. All standards that support validation, including ADaM, use the same validation framework and processes described in Validation.
ADaM validation of ADSL and BDS data sets is based on the CDISC ADaM Validation Checks Version 1.1 Maintenance Release (dated and released January 21, 2011 to correct errors and remove duplicate checks). This documentation was prepared by the CDISC ADaM team. The version 1.1 release identifies 173 validation checks to be performed. The SAS Clinical Standards Toolkit defines validation checks using a combination of two files:
  • the Validation Master data set (located at <global standards library directory>/standards/cdisc-adam-2.1-1.4/validation/control)
  • the Messages data set (located at <global standards library directory>/standards/cdisc-adam-2.1-1.4/messages)
Each of these ADaM data sets has only 159 records. Fourteen validation checks have been combined with other checks by the SAS Clinical Standards Toolkit.
Consider checks 92 and 93:
  • 092: There is more than one value of TRTPN for a given value of TRTP.
  • 093: There is more than one value of TRTP for a given value of TRTPN.
Checks 92 and 93 are defined and run together as check ADAM0092 because the check macro that is used (cstcheck_notunique) checks both conditions by default. The SAS Clinical Standards Toolkit supports all of the checks specified in the version 1.1 release. These checks are listed in Validation Checks.
The following sections highlight certain aspects of CDISC ADaM validation that are unique or noteworthy.

Specific Check Implementation Details

Implementation details for specific checks are listed in this table:
CDISC ADaM Validation Check Implementation Details
Check
Details
ADAM0041-ADAM0043
A variable with a suffix of DT, TM, or DTM does not have a SAS Date format.
Check metadata codelogic relies on the presence of a nonmissing displayformat value in the column metadata data set. Alternative assessments, such as relying on whether each analysis data set column has an acceptable SAS date-and-time format, or evaluating the values against predetermined formats such as ddmmyy8., are possible.
ADAM0132
R2BASE is not equal to AVAL divided by BASE
Implementation uses the round() function with a precision of .001. Changes in the check metadata codelogic might be required if your values are of greater precision.
ADAM0133
R2AyLO is not equal to AVAL divided by AyLO
Implementation uses the round() function with a precision of .001. Changes in the check metadata codelogic might be required if your values are of greater precision.
ADAM0134
R2AyHI is not equal to AVAL divided by AyHI
Implementation uses the round() function with a precision of .001. Changes in the check metadata codelogic might be required if your values are of greater precision.

Unique Validation Properties

Two validation properties have been added to the SAS Clinical Standards Toolkit to support ADaM validation:
  • _cstParseLengthOverride
    By default, the value is set to 1 and is used only by the SAS Clinical Standards Toolkit framework macro cstutil_parsescopesegment() when evaluating the validation check data set fields tablescope and columnscope. For ADaM validation, it is recommended that this value always be set to 1.
  • _cstCaseMgmt
    By default, the value is set to <blank>. A value of UPCASE is also allowed. This property (global macro variable) is used only in the validation check data set field codelogic. For example, consider this codelogic:
    if (&_cstCaseMgmt(&_cstColumn) not in ("","Y")) then _cstError=1;
    When _cstCaseMgmt=UPCASE, the column value is case insensitive, and the values “y” and “Y” are equivalent. When _cstCaseMgmt=, the value “y” is reported as an error.

Validation Check Macros

ADaM validation uses these check macros from the autocall library in the 159 defined checks:
cstcheck_column
cstcheck_crossstdmetamismatch*
cstcheck_columncompare
cstcheck_metamismatch
cstcheck_columnexists*
cstcheck_notincodelist
cstcheck_columnvarlist*
cstcheck_notunique
cstcheck_crossstdcomparedomains*
cstcheck_zeroobs
* These macros are new to the SAS Clinical Standards Toolkit 1.4. They are used only for CDISC ADaM validation, although they are available to all standards.
Note: This list represents a subset of check macros that are available to all standards to be validated.
For information about the purpose and use of each check macro, see Macro Application Programming Interface.

Cross-Standard Validation Checks

Six ADaM validation checks require a comparison of ADaM data or metadata with SDTM data or metadata. These checks require the availability of table and column metadata from two different standards. To support this comparison, two new check macros (cstcheck_crossstdcomparedomains and cstcheck_crossstdmetamismatch) are available in the SAS Clinical Standards Toolkit 1.4. Part of the metadata available in the Validation Master data set for the six ADaM cross-standard validation checks is shown in Partial Metadata for the CDISC ADaM Cross-Standard Validation Checks.
Partial Metadata for the CDISC ADaM Cross-Standard Validation Checks
Partial metadata for the CDISC ADaM cross-standard validation checks

Sample Data for Validation and Reporting

The SAS Clinical Standards Toolkit implementation of ADaM includes two sets of data and metadata. One set supports the SAS Clinical Standards Toolkit ADaM reporting. In this set, few, if any, data errors and anomalies are included, and this set is considered a clean, analysis-ready set of data. A second set includes illustrative data and metadata errors to demonstrate ADaM validation functionality.
The following figure shows some of the installed SAS files for ADaM, the data and metadata folders that support reporting, and the baddata and badmetadata folders that support validation. The corresponding sample driver modules (analyze_data.sas and validate_data.sas, respectively), which are located in the programs folder (as shown in Example Folder Hierarchy for a CDISC ADaM Sample Study) point to the correct source data and metadata folders.
Example Folder Hierarchy for a CDISC ADaM Sample Study
Example folder hierarchy for a CDISC ADaM sample study

Validation Results

The results of an ADaM validation process, as documented in the validation_results data set, are shown in Results from an ADaM Validation Process (Partial Listing) and Results from an ADaM Validation Process (Partial Listing—Continued). The first 15 records of the data set have been excluded from the display because they report generic process setup and metadata information common to all validation processes.
Records 22 through 24 report the results of one of the cross-standard validation checks. This validation check finds a subject (USUBJID) in the ADaM data sets that was not found in the SDTM DM domain.
Results from an ADaM Validation Process (Partial Listing)
Results from an ADaM validation process (partial listing)
Results from an ADaM Validation Process (Partial Listing—Continued)
Results from an ADaM validation process (partial listing—continued)
A partial report of the validation_metrics data set (including a process summary noting that 17 checks were attempted, two could not be run, and 11 errors were detected) is shown in Metrics from an ADaM Validation Process (Partial Listing). The two checks that could not be run referenced columns in the check metadata that could not be found or assessed in the source data sets.
Metrics from an ADaM Validation Process (Partial Listing)
Metrics from an ADaM validation process (partial listing)