Validator Configuration
Global Rules Section
| Variable | Description | Required | Data Type | Length |
|---|
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0001 | ADaM Subject level (ADSL) dataset should be included in every submission. | Find | Missing ADSL dataset |
| AD0061 | The presence of SDTM.EX (Exposure) domain implies that there should be a Treatment Start Date (TRTSDT) / Datetime (TRTSDTM) variable present in the ADaM data. | Find | SDTM.EX is present, but neither ADSL TRTSDT nor TRTSDTM are present |
| AD0061A | The presence of SDTM.EX (Exposure) domain implies that there should be a Treatment End Date (TRTEDT) / Datetime (TRTEDTM) variable present in the ADaM data. ADaM rule AD0061 corresponds to Start Date and Times. ADaM IG requires it if there is an investigational product. | Find | SDTM.EX is present, but neither ADSL TRTEDT nor TRTEDTM are present |
| AD1024 | When validating ADaM datasets, the DM dataset must also be included to ensure traceability. Note: For the final submission the eCTD structure should be maintained. Therefore, the SDTM and ADaM datasets should be submitted in their appropriate locations. Do not include the DM dataset in the ../analysis/adam/datasets folder. | Find | Traceability rules not executed due to missing DM dataset |
| AD1025 | When validating ADaM datasets, the AE dataset must also be included to ensure traceability. Note: For the final submission the eCTD structure should be maintained. Therefore, the SDTM and ADaM datasets should be submitted in their appropriate locations. Do not include the AE dataset in the ../analysis/adam/datasets folder. | Find | Traceability rules not executed due to missing AE dataset |
| AD1026 | When validating ADaM datasets, the EX dataset must also be included to ensure traceability. Note: For the final submission the eCTD structure should be maintained. Therefore, the SDTM and ADaM datasets should be submitted in their appropriate locations. Do not include the EX dataset in the ../analysis/adam/datasets folder. | Find | Traceability rules not executed due to missing EX dataset |
| SD0061 | Domains referenced in data definition document (define.xml) should be included in the submission. | Find | Domain referenced in define.xml, but dataset is missing |
Unrecognized
| Variable | Description | Required | Data Type | Length |
|---|
| ID | Description | Validator | Message |
|---|---|---|---|
| AD9999 | Validation is defined only for ADSL, BDS, and OCCDS datasets. Other dataset structures are not currently supported. | Property | Dataset %Domain% not validated |
Subject-Level Analysis Dataset
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study |
|
text | 200 |
| SITEID | Study Site Identifier |
|
text | 200 |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age |
|
integer | 200 |
| AGEU | Age Units |
|
text | 200 |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex |
|
text | 200 |
| RACE | Race |
|
text | 200 |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm |
|
text | 200 |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT01P | Planned Treatment for Period 01 |
|
text | 200 |
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| STRATAR | Strata Used for Randomization | text | 200 | |
| STRATARN | Strata Used for Randomization (N) | float | 200 | |
| STRATAV | Strata from Verification Source | text | 200 | |
| STRATAVN | Strata from Verification Source (N) | float | 200 | |
| STRAT#D | Description of Stratification Factor $1 | text | 200 | |
| STRAT#R | Strat Factor $1 Value Used for Rand | text | 200 | |
| STRAT#RN | Strat Factor $1 Value Used for Rand (N) | float | 200 | |
| STRAT#V | Strat Factor $1 Value from Verif Source | text | 200 | |
| STRAT#VN | Strat Fact $1 Val from Verif Source (N) | float | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0026 | For subject-level numeric population flag variables: 0 = no (not included), 1 = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0048 | ADSL must have at least one variable that ends in FL because you need at least one population flag. | Find | *FL subject-population flag variable is not present |
| AD0053 | The combination of Study Identifier (STUDYID) and Unique Subject Identifier (USUBJID) is not found in the SDTM Demographics domain. There must be traceability between ADaM and SDTM. | Lookup | The combination of STUDYID and USUBJID value does not exist in the SDTM DM domain |
| AD0054 | There should be only one record for a unique value of USUBJID per study in the ADSL dataset. | Unique | USUBJID duplicate values are not allowed within a study |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0064 | If Actual Treatment (TRTxxAN) numeric variable is present, there must be a corresponding Actual Treatment (TRTxxA) character variable. | Find | TRTxxAN is present, but TRTxxA is not present |
| AD0066 | If Planned Pooled Treatment y for Period xx (TRxxPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y for Period xx (TRxxPGy) character variable. | Find | TRxxPGyN is present, but TRxxPGy is not present |
| AD0070 | If Actual Pooled Treatment y for Period xx (TRxxAGyN) numeric variable is present, there must be a corresponding Actual Pooled Treatment y for Period xx (TRxxAGy) character variable. | Find | TRxxAGyN is present, but TRxxAGy is not present |
| AD0075 | If the Planned Treatment (TRTxxPN) numeric variable is present, there must be a corresponding Planned Treatment (TRTxxP) character variable. | Find | TRTxxPN is present, but TRTxxP is not present |
| AD0076B | Within a study, all TRTxxPN values must be the same for each unique value of TRTxxP when the primary variable TRTxxP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%PN |
| AD0077B | Within a study, all TRTxxP values must be the same for each unique value of TRTxxPN when the primary variable TRTxxP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%P |
| AD0078 | If Planned Treatment for Period xx (TRTxxP) is present, First Treatment date for period xx (TRxxSDT) must be present if there is more than one Treatment Period. When there is only 1 Treatment Period 01, TRTSDT is sufficient. | Find | TRTxxP is present, but TRxxSDT is not present for periods greater than 01 |
| AD0079 | If Planned Treatment for Period xx (TRTxxP) is present, Last Treatment Date for Period xx (TRxxEDT) must be present if there is more than one Treatment Period. When there is only 1 Treatment Period 01, TRTEDT is sufficient. | Find | TRTxxP is present, but TRxxEDT is not present for periods greater than 01 |
| AD0080 | If Actual Treatment (TRTxxA) is present, its corresponding Planned Treatment (TRTxxP) must be present. | Find | TRTxxA is present, but TRTxxP is not present |
| AD0084 | Date of Last Exposure to Treatment (TRTEDT) for this patient record should be equal to the max Last Treatment Date (TRxxEDT) among all Periods 01 thru xx. | Condition | TRTEDT != Maximum TRxxEDT on this record |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0196 | Unlike SDTM, only some of ADaM Required variables (where Core attribute is 'Req') must be populated. CDISC ADaM rules affirm that PARAM and PARAMCD must be populated, while others are populated as appropriate. Known Exceptions: TRTP, TRTxxP, AGE, AGEU, RACE, SUBJID, AESER. | Required | Required %Variable% value is null |
| AD0204 | The same subject in ADSL and DM must have the same value for Age (AGE). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.AGE != DM.AGE |
| AD0205 | The same subject in ADSL and DM must have the same value for Age Unit (AGEU). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.AGEU != DM.AGEU |
| AD0206 | The same subject in ADSL and DM must have the same value for Sex (SEX). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.SEX != DM.SEX |
| AD0207 | The same subject in ADSL and DM must have the same value for Race (RACE). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.RACE != DM.RACE |
| AD0208 | The same subject in ADSL and DM must have the same value for Subject ID (SUBJID). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.SUBJID != DM.SUBJID |
| AD0209 | The same subject in ADSL and DM must have the same value for Site ID (SITEID). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.SITEID != DM.SITEID |
| AD0210 | The same subject in ADSL and DM must have the same value for Arm (ARM). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.ARM != DM.ARM |
| AD0227B | Within a study, all Planned Sequence of Treatments (TRTSEQP) variable values must be the same for each unique value of Planned Sequence of Treatments (N) (TRTSEQPN) when both variables are populated. | Unique | Inconsistent value for TRTSEQP |
| AD0228B | Within a study, all Planned Sequence of Treatments (N) (TRTSEQPN) variable values must be the same for each unique value of Planned Sequence of Treatments (TRTSEQP) when both variables are populated. | Unique | Inconsistent value for TRTSEQPN |
| AD0229B | Within a study, all Actual Sequence of Treatment (TRTSEQA) variable values must be the same for each unique value of Actual Sequence of Treatments (N) (TRTSEQAN) when both variables are populated. | Unique | Inconsistent value for TRTSEQA |
| AD0230B | Within a study, all Actual Sequence of Treatments (N) (TRTSEQAN) variable values must be the same for each unique value of Actual Sequence of Treatment (TRTSEQA) variable when both variables are populated. | Unique | Inconsistent value for TRTSEQAN |
| AD0231 | Within a study, all Planned Pooled Treatment y for Period xx (TRxxPGy) variable values must be the same for each unique value of Planned Treatment for Period xx (TRTxxP) variable when TRTxxP is populated. TRxxPGy is a more general pooled treatment for TRTxxP, therefore it may be used for many TRTxxP. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2% within a unique TRT%Variable.1%P |
| AD0232B | Within a study, all Planned Pooled Treatment y for Period xx (TRxxPGy) variable values must be the same for each unique value of Planned Pooled Trt y for Period xx (N) (TRxxPGyN) variable when both variables are populated. Analogous rule for AD0235. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2% |
| AD0233 | Within a study, all Planned Pooled Trt y for Period xx (N) (TRxxPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y for Period xx (TRxxPGy) variable when the primary variable TRxxPGy is populated. analogous rule for AD0236. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2%N |
| AD0234 | Within a study, all Actual Pooled Treatment y for Period xx (TRxxAGy) variable values must be the same for each unique value of Actual Treatment for Period xx (TRTxxA) when TRTxxA is populated. TRxxAGy is a more general pooled treatment for TRTxxA, therefore it may be used for many TRTxxA. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2% within a unique TRT%Variable.1%A |
| AD0235B | Within a study, all Actual Pooled Treatment y for Period xx (TRxxAGy) variable values must be the same for each unique value of Actual Pooled Trt y for Period xx (N) (TRxxAGyN) variable when both variables are populated. Analogous rule for AD0232. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2% |
| AD0236B | Within a study, all Actual Pooled Trt y for Period xx (N) (TRxxAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y for Period xx (TRxxAGy) variable when both variables are populated. Analogous rule for AD0233. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2%N |
| AD0239A | For a given period xx, If both Actual Treatment for Period xx (TRTxxA) and Planned Pooled Treatment y for Period xx (TRxxPGy) variables are present, then Actual Pooled Treatment y for Period xx (TRxxAGy) variable must be present. | Find | TRxxPGy and TRTxxA are present, but TRxxAGy is not present |
| AD0242B | Within a study, all Actual Treatment for Period xx (N) (TRTxxAN) variable values must be the same for each unique value of Actual Treatment for Period xx (TRTxxA) variable when both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%AN |
| AD0243B | Within a study, all Actual Treatment for Period xx (TRTxxA) variable values must be the same for each unique value of Actual Treatment for Period xx (N) (TRTxxAN) variable when both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%A |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0320 | The dataset label for a dataset named 'ADSL' must be 'Subject-Level Analysis Dataset'. | Property | Non-standard dataset label |
| AD0355 | Within a study, all Geographic Region y (REGIONy) variable values must be the same for each unique value of Geographic Region y (N) (REGIONyN) when variable REGIONyN is populated. | Unique | Inconsistent value for REGION%Variable.1% |
| AD0356 | Within a study, all Geographic Region y (N) (REGIONyN) variable values must be the same for each unique value of Geographic Region y (REGIONy) when the primary variable REGIONy is populated. | Unique | Inconsistent value for REGION%Variable.1%N |
| AD0359 | Within a study, Cause of Death (DTHCAUS) variable values must be the same for each unique value of Cause of Death(N) (DTHCAUSN) variable when variable DTHCAUSN is populated. | Unique | Inconsistent value for DTHCAUS |
| AD0360 | Within a study, Cause of Death(N) (DTHCAUSN) variable values must be the same for each unique value of Cause of Death (DTHCAUS) variable when the primary variable DTHCAUS is populated. | Unique | Inconsistent value for DTHCAUSN |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0366 | Date of Randomization (RANDDT) variable should be included into dataset when Randomized Population Flag (RANDFL) variable is present. | Find | Missing RANDDT variable when RANDFL variable is present |
| AD0366A | Date of Randomization (RANDDT) variable value should be populated for randomized subjects (when Randomized Population Flag (RANDFL) variable value is 'Y'). | Required | Missing value for RANDDT when RANDFL is Y |
| AD0366B | Randomized Population Flag (RANDFL) variable value should be 'Y' for randomized subject (when Date of Randomization (RANDDT) variable value is populated). | Condition | RANDFL value is not Y when RANDDT is populated |
| AD0367 | The same subject in ADSL and DM datasets must have the same value for Actual Arm (ACTARM). There must be traceability between ADaM and SDTM. | Lookup | For the same USUBJID, the ADSL.ACTARM != DM.ACTARM |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0468 | There should be only a single value of Strata Used for Randomization (STRATAR) variable for a given value of Strata Used for Randomization (N) (STRATARN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAR |
| AD0469 | There should be only a single value of Strata Used for Randomization (N) (STRATARN) variable for a given value of Strata Used for Randomization (STRATAR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATARN |
| AD0472 | There should be only a single value of Strat Factor w Value Used for Rand (STRATwR) variable for a given value of Strat Factor w Value Used for Rand (N) (STRATwRN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwR |
| AD0473 | There should be only a single value of Strat Factor w Value Used for Rand (N) (STRATwRN) variable for a given value of Strat Factor w Value Used for Rand (STRATwR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwRN |
| AD0476 | There should be only a single value of Strata from Verification Source (STRATAV) variable for a given value of Strata from Verification Source (N) (STRATAVN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAV |
| AD0477 | There should be only a single value of Strata from Verification Source (N) (STRATAVN) variable for a given value of Strata from Verification Source (STRATAV) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAVN |
| AD0480 | There should be only a single value of Strat Factor w Value from Verif Source (STRATwV) variable for a given value of Strat Fact w Val from Verif Source (N) (STRATwVN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwV |
| AD0481 | There should be only a single value of Strat Fact w Val from Verif Source (N) (STRATwVN) variable for a given value of Strat Factor w Value from Verif Source (STRATwV) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwVN |
| AD0570 | If any of the subject-level subperiod timing variables (PxxSw, PxxSwSDT, PxxSwSTM, PxxSwSDM, PxxSwSDF, PxxSwSTF, PxxSwEDT, PxxSwETM, PxxSwEDM, PxxSwEDF, PxxSwETF) are present, there must be a corresponding Planned Treatment for Period xx (TRTxxP) character variable present for the same xx value. | Find | %Variable% is present, but TRT%Variable.1%P is not present |
| AD0616 | There should be only a single value of Treatment Compliance (%) Group y (TRCMPGy) variable for a given value of Treatment Compliance (%) Group y (N) (TRCMPGyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRCMPGy |
| AD0617 | There should be only a single value of Treatment Compliance (%) Group y (N) (TRCMPGyN) variable for a given value of Treatment Compliance (%) Group y (TRCMPGy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRCMPGyN |
| AD0618 | On a given record, if Treatment Compliance (%) Group y (TRCMPGy) variable value is populated, then Treatment Compliance (%) (TRCMP) variable value must be populated. | Condition | TRCMPGy is populated and TRCMP is not populated |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| AD1019 | For ADSL Trial Dates xx variables of form TRxx... and APxx..., ‘xx’ must be the treatment period (01 to 99). This rule covers 20 distinct variable forms listed in ADSL. It's anticipated that the CDISC ADaM Validation team will release 20 new rules to cover this scenario. | Condition | Illegal variable name: xx is not in [01-99] for an ADSL trial date |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Non-Compartmental Analysis
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| ASEQ | Analysis Sequence Number | float | 200 | |
| TRTP | Planned Treatment | text | 200 | |
| TRTPN | Planned Treatment (N) | float | 200 | |
| TRTA | Actual Treatment | text | 200 | |
| TRTAN | Actual Treatment (N) | float | 200 | |
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTPG# | Planned Pooled Treatment $1 | text | 200 | |
| TRTPG#N | Planned Pooled Treatment $1 (N) | integer | 200 | |
| TRTAG# | Actual Pooled Treatment $1 | text | 200 | |
| TRTAG#N | Actual Pooled Treatment $1 (N) | integer | 200 | |
| DOSEP | Planned Treatment Dose | float | 200 | |
| DOSCUMP | Cumulative Planned Treatment Dose | float | 200 | |
| DOSEA | Actual Treatment Dose |
|
float | 200 |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units |
|
text | 200 |
| ADT | Analysis Date | integer | 200 | |
| ATM | Analysis Time | integer | 200 | |
| ADTM | Analysis Datetime | integer | 200 | |
| ADY | Analysis Relative Day | integer | 200 | |
| ADTF | Analysis Date Imputation Flag | text | 200 | |
| ATMF | Analysis Time Imputation Flag | text | 200 | |
| ASTDT | Analysis Start Date | integer | 200 | |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Datetime | integer | 200 | |
| ASTDY | Analysis Start Relative Day | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| AENDT | Analysis End Date | integer | 200 | |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Datetime | integer | 200 | |
| AENDY | Analysis End Relative Day | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| AVISIT | Analysis Visit |
|
text | 200 |
| AVISITN | Analysis Visit (N) | float | 200 | |
| ATPT | Analysis Timepoint | text | 200 | |
| ATPTN | Analysis Timepoint (N) | integer | 200 | |
| ATPTREF | Analysis Timepoint Reference | text | 200 | |
| APHASE | Phase | text | 200 | |
| APHASEN | Phase (N) | integer | 200 | |
| APERIOD | Period | integer | 200 | |
| APERIODC | Period (C) | text | 200 | |
| ASPER | Subperiod within Period | integer | 200 | |
| ASPERC | Subperiod within Period (C) | text | 200 | |
| ARELTM | Analysis Relative Time | integer | 200 | |
| ARELTMU | Analysis Relative Time Unit | text | 200 | |
| APERSDT | Period Start Date | integer | 200 | |
| APERSTM | Period Start Time | integer | 200 | |
| APERSDTM | Period Start Datetime | integer | 200 | |
| APERSDTF | Period Start Date Imput. Flag | text | 200 | |
| APERSTMF | Period Start Time Imput. Flag | text | 200 | |
| APEREDT | Period End Date | integer | 200 | |
| APERETM | Period End Time | integer | 200 | |
| APEREDTM | Period End Datetime | integer | 200 | |
| APEREDTF | Period End Date Imput. Flag | text | 200 | |
| APERETMF | Period End Time Imput. Flag | text | 200 | |
| ASPRSDT | Subperiod Start Date | integer | 200 | |
| ASPRSTM | Subperiod Start Time | integer | 200 | |
| ASPRSDTM | Subperiod Start Datetime | integer | 200 | |
| ASPRSDTF | Subperiod Start Date Imput. Flag | text | 200 | |
| ASPRSTMF | Subperiod Start Time Imput. Flag | text | 200 | |
| ASPREDT | Subperiod End Date | integer | 200 | |
| ASPRETM | Subperiod End Time | integer | 200 | |
| ASPREDTM | Subperiod End Datetime | integer | 200 | |
| ASPREDTF | Subperiod End Date Imput. Flag | text | 200 | |
| ASPRETMF | Subperiod End Time Imput. Flag | text | 200 | |
| PHSDT | Phase Start Date | integer | 200 | |
| PHSTM | Phase Start Time | integer | 200 | |
| PHSDTM | Phase Start Datetime | integer | 200 | |
| PHSDTF | Phase Start Date Imput. Flag | text | 200 | |
| PHSTMF | Phase Start Time Imput. Flag | text | 200 | |
| PHEDT | Phase End Date | integer | 200 | |
| PHETM | Phase End Time | integer | 200 | |
| PHEDTM | Phase End Datetime | integer | 200 | |
| PHEDTF | Phase End Date Imput. Flag | text | 200 | |
| PHETMF | Phase End Time Imput. Flag | text | 200 | |
| *DT | integer | 200 | ||
| *TM | integer | 200 | ||
| *DTM | integer | 200 | ||
| *ADY | integer | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 | ||
| *SDT | integer | 200 | ||
| *STM | integer | 200 | ||
| *SDTM | integer | 200 | ||
| *SDY | integer | 200 | ||
| *SDTF | text | 200 | ||
| *STMF | text | 200 | ||
| *EDT | integer | 200 | ||
| *ETM | integer | 200 | ||
| *EDTM | integer | 200 | ||
| *EDY | integer | 200 | ||
| *EDTF | text | 200 | ||
| *ETMF | text | 200 | ||
| PARAM | Parameter |
|
text | 200 |
| PARAMCD | Parameter Code |
|
text | 200 |
| PARAMN | Parameter (N) | float | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| AVAL | Analysis Value | float | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| AVALCAT# | Analysis Value Category $1 | text | 200 | |
| AVALCA#N | Analysis Value Category $1 (N) | integer | 200 | |
| BASE | Baseline Value | float | 200 | |
| BASEC | Baseline Value (C) | text | 200 | |
| BASECAT# | Baseline Category $1 | text | 200 | |
| BASECA#N | Baseline Category $1 (N) | integer | 200 | |
| BASETYPE | Baseline Type | text | 200 | |
| CHG | Change from Baseline | float | 200 | |
| CHGCAT# | Change from Baseline Category $1 | text | 200 | |
| CHGCAT#N | Change from Baseline Category $1 (N) | integer | 200 | |
| PCHG | Percent Change from Baseline | float | 200 | |
| PCHGCAT# | Percent Chg from Baseline Category $1 | text | 200 | |
| PCHGCA#N | Percent Chg from Baseline Category $1 (N) | integer | 200 | |
| R2BASE | Ratio to Baseline | float | 200 | |
| R2A#LO | Ratio to Analysis Range $1 Lower Limit | float | 200 | |
| R2A#HI | Ratio to Analysis Range $1 Upper Limit | float | 200 | |
| SHIFT# | Shift $1 | text | 200 | |
| SHIFT#N | Shift $1 (N) | integer | 200 | |
| BCHG | Change to Baseline | float | 200 | |
| BCHGCAT# | Change to Baseline Category $1 | text | 200 | |
| BCHGCA#N | Change to Baseline Category $1 (N) | integer | 200 | |
| PBCHG | Percent Change to Baseline | float | 200 | |
| PBCHGCA# | Percent Change to Baseline Category $1 | text | 200 | |
| PBCHGC#N | Percent Change to Baseline Category $1 (N) | integer | 200 | |
| CRIT# | Analysis Criterion $1 | text | 200 | |
| CRIT#FL | Criterion $1 Evaluation Result Flag | text | 200 | |
| CRIT#FN | Criterion $1 Evaluation Result Flag (N) | integer | 200 | |
| MCRIT# | Analysis Multi-Response Criterion $1 | text | 200 | |
| MCRIT#ML | Multi-Response Criterion $1 Evaluation | text | 200 | |
| MCRIT#MN | Multi-Response Criterion $1 Eval (N) | float | 200 | |
| DTYPE | Derivation Type | text | 200 | |
| AWRANGE | Analysis Window Valid Relative Range | text | 200 | |
| AWTARGET | Analysis Window Target | integer | 200 | |
| AWTDIFF | Analysis Window Diff from Target | integer | 200 | |
| AWLO | Analysis Window Beginning Timepoint | integer | 200 | |
| AWHI | Analysis Window Ending Timepoint | integer | 200 | |
| AWU | Analysis Window Unit | text | 200 | |
| STARTDT | Time-to-Event Origin Date for Subject | integer | 200 | |
| STARTDTM | Time-to-Event Origin Datetime | integer | 200 | |
| STARTDTF | Origin Date Imputation Flag | text | 200 | |
| STARTTMF | Origin Time Imputation Flag | text | 200 | |
| CNSR | Censor | integer | 200 | |
| EVNTDESC | Event or Censoring Description | text | 200 | |
| CNSDTDSC | Censor Date Description | text | 200 | |
| ATOXGR | Analysis Toxicity Grade | text | 200 | |
| ATOXGRN | Analysis Toxicity Grade (N) | float | 200 | |
| BTOXGR | Baseline Toxicity Grade | text | 200 | |
| BTOXGRN | Baseline Toxicity Grade (N) | float | 200 | |
| ANRIND | Analysis Reference Range Indicator | text | 200 | |
| BNRIND | Baseline Reference Range Indicator | text | 200 | |
| ANRLO | Analysis Normal Range Lower Limit | float | 200 | |
| ANRLOC | Analysis Normal Range Lower Limit (C) | text | 200 | |
| ANRHI | Analysis Normal Range Upper Limit | float | 200 | |
| ANRHIC | Analysis Normal Range Upper Limit (C) | text | 200 | |
| A#LO | Analysis Range $1 Lower Limit | float | 200 | |
| A#LOC | Analysis Range $1 Lower Limit (C) | text | 200 | |
| A#HI | Analysis Range $1 Upper Limit | float | 200 | |
| A#HIC | Analysis Range $1 Upper Limit (C) | text | 200 | |
| A#IND | Analysis Range $1 Indicator | text | 200 | |
| B#IND | Baseline Analysis Range $1 Indicator | text | 200 | |
| ATOXGRL | Analysis Toxicity Grade Low | text | 200 | |
| ATOXGRLN | Analysis Toxicity Grade Low (N) | float | 200 | |
| ATOXGRH | Analysis Toxicity Grade High | text | 200 | |
| ATOXGRHN | Analysis Toxicity Grade High (N) | float | 200 | |
| BTOXGRL | Baseline Toxicity Grade Low | text | 200 | |
| BTOXGRLN | Baseline Toxicity Grade Low (N) | float | 200 | |
| BTOXGRH | Baseline Toxicity Grade High | text | 200 | |
| BTOXGRHN | Baseline Toxicity Grade High (N) | float | 200 | |
| ATOXDSCL | Analysis Toxicity Description Low | text | 200 | |
| ATOXDSCH | Analysis Toxicity Description High | text | 200 | |
| NCAXFL | PK NCA Exclusion Flag | text | 200 | |
| NCAXFN | PK NCA Exclusion Flag (N) | integer | 200 | |
| NCAwXRS | Reason w for PK NCA Exclusion | text | 200 | |
| NCAwXRSN | Reason for PK NCA Exclusion of w (N) | integer | 200 | |
| PKSUMXF | PK Summary Exclusion Flag | text | 200 | |
| PKSUMXFN | PK Summary Exclusion Flag (N) | integer | 200 | |
| METABFL | Metabolite Flag | text | 200 | |
| COHORT | Subject Cohort | text | 200 | |
| COHORTN | Subject Cohort (N) | integer | 200 | |
| ROUTE | Route | text | 200 | |
| TRTRINT | Planned Treatment Interval | float | 200 | |
| TRTRINTU | Planned Treatment Interval Units | text | 200 | |
| DOSPCTDF | Percent Diff. Nominal vs. Actual Dose | float | 200 | |
| DOSEFRQ | Dose Frequency | text | 200 | |
| ACYCLE | Analysis Cycle | integer | 200 | |
| ACYCLEC | Analysis Cycle (C) | text | 200 | |
| FANLDT | First Date of Dose for Analyte | integer | 200 | |
| FANLTM | First Time of Dose for Analyte | integer | 200 | |
| FANLDTM | First Datetime of Dose for Analyte | integer | 200 | |
| FANLEDT | First End Date of Dose for Analyte | integer | 200 | |
| FANLETM | First End Time of Dose for Analyte | integer | 200 | |
| FANLEDTM | First End Datetime of Dose for Analyte | integer | 200 | |
| PCRFTDT | Reference Date of Dose for Analyte |
|
integer | 200 |
| PCRFTTM | Reference Time of Dose for Analyte |
|
integer | 200 |
| PCRFTDTM | Reference Datetime of Dose for Analyte |
|
integer | 200 |
| PCRFEDT | Reference End Date of Dose for Analyte | integer | 200 | |
| PCRFETM | Reference End Time of Dose for Analyte | integer | 200 | |
| PCRFEDTM | Ref. End Datetime of Dose for Analyte | integer | 200 | |
| NFRLT | Nom. Rel. Time from Analyte First Dose | float | 200 | |
| AFRLT | Act. Rel. Time from Analyte First Dose | float | 200 | |
| NEFRLT | Nom. Rel. End Time from First Dose | float | 200 | |
| AEFRLT | Act. Rel. End Time from First Dose | float | 200 | |
| FRLTU | Rel. Time from First Dose Unit | text | 200 | |
| NRRLT | Nominal Rel. Time from Ref. Dose |
|
float | 200 |
| ARRLT | Actual Rel. Time from Ref. Dose |
|
float | 200 |
| MRRLT | Modified Rel. Time from Ref. Dose | float | 200 | |
| NERRLT | Nominal Rel. End Time from Ref. Dose | float | 200 | |
| AERRLT | Actual Rel. End Time from Ref. Dose | float | 200 | |
| MERRLT | Modified Rel. End Time from Ref. Dose | float | 200 | |
| RRLTU | Rel. Time from Ref. Dose Unit |
|
text | 200 |
| TMPCTDF | Percent Diff. Nominal vs. Actual Time | float | 200 | |
| ADOSEDUR | Actual Duration of Treatment Dose | float | 200 | |
| NDOSEDUR | Nominal duration of Treatment Dose | float | 200 | |
| DOSEDURU | Duration of Treatment Dose Units | text | 200 | |
| AVALU | Analysis Value Unit |
|
text | 200 |
| PCSPEC | Specimen Material Type | text | 200 | |
| PCSTRESC | Character Result/Finding in Std Format | text | 200 | |
| PCSTRESU | Standard Units | text | 200 | |
| ALLOQ | Analysis Lower Limit of Quantitation | float | 200 | |
| PCLLOQ | Lower Limit of Quantitation | float | 200 | |
| VOLUME | Volume Value | float | 200 | |
| VOLUMEU | Volume Value Unit | text | 200 | |
| SPWEIGHT | Specimen Weight Value | float | 200 | |
| SPWEIGHU | Specimen Weight Value Unit | text | 200 | |
| PCGRPID | Group ID | text | 200 | |
| PCSEQ | Sequence Number | integer | 200 | |
| ABLFL | Baseline Record Flag | text | 200 | |
| ABLFN | Baseline Record Flag (N) | integer | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| ANL#FN | Analysis Flag $1 (N) | integer | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| ONTRTFN | On Treatment Record Flag (N) | integer | 200 | |
| LVOTFL | Last Value On Treatment Record Flag | text | 200 | |
| LVOTFN | Last Value On Treatment Record Flag (N) | integer | 200 | |
| ITTRFL | Intent-To-Treat Record-Level Flag | text | 200 | |
| ITTRFN | Intent-To-Treat Record-Level Flag (N) | integer | 200 | |
| SAFRFL | Safety Analysis Record-Level Flag | text | 200 | |
| SAFRFN | Safety Analysis Record-Level Flag (N) | integer | 200 | |
| FASRFL | Full Analysis Set Record-Level Flag | text | 200 | |
| FASRFN | Full Analysis Set Record-Level Flag (N) | integer | 200 | |
| PPROTRFL | Per-Protocol Record-Level Flag | text | 200 | |
| PPROTRFN | Per-Protocol Record-Level Flag (N) | integer | 200 | |
| COMPLRFL | Completers Record-Level Flag | text | 200 | |
| COMPRFN | Completers Record-Level Flag (N) | integer | 200 | |
| ITTPFL | Intent-To-Treat Parameter-Level Flag | text | 200 | |
| ITTPFN | Intent-To-Treat Param-Level Flag (N) | integer | 200 | |
| SAFPFL | Safety Analysis Parameter-Level Flag | text | 200 | |
| SAFPFN | Safety Analysis Param-Level Flag (N) | integer | 200 | |
| FASPFL | Full Analysis Set Parameter-Level Flag | text | 200 | |
| FASPFN | Full Analysis Set Param-Level Flag (N) | integer | 200 | |
| PPROTPFL | Per-Protocol Parameter-Level Flag | text | 200 | |
| PPROTPFN | Per-Protocol Parameter-Level Flag (N) | integer | 200 | |
| COMPLPFL | Completers Parameter-Level Flag | text | 200 | |
| COMPLPFN | Completers Parameter-Level Flag (N) | integer | 200 | |
| SRCDOM | Source Data | text | 200 | |
| SRCVAR | Source Variable | text | 200 | |
| SRCSEQ | Source Sequence Number | float | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| * | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0090 | At least 1 treatment variable is required in a BDS dataset. This requirement is satisfied by any of the subject-level (ARM, ACTARM, TRTxxP, TRTxxA, TRTSEQP, TRTSEQA, TRxxPGy, TRxxAGy, TSEQPGy, TSEQAGy) or record-level (TRTP, TRTA, TRTPGy, TRTAGy) treatment variables. One is allowed to use any treatment variable in analysis of BDS. Any subject-level treatment variable may be copied into the BDS dataset from ADSL. | Find | None of the subject-level or record-level treatment variables defined in the IG are present |
| AD0092B | Within a study, all TRTPN values must be the same for each unique value of TRTP when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTPN |
| AD0093B | Within a study, all TRTP values must be the same for each unique value of TRTPN when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTP |
| AD0095B | Within a study, all TRTAN values must be the same for each unique value of TRTA when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTAN |
| AD0096B | Within a study, all TRTA values must be the same for each unique value of TRTAN when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTA |
| AD0097 | If Planned Pooled Treatment y (TRTPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTPGyN is present, but TRTPGy is not present |
| AD0098 | Any variable ending in SDY (Start day) must have a value less than or equal to its corresponding EDY (end day) value. | Condition | %Variable.1%SDY is greater than %Variable.1%EDY |
| AD0099 | Any variable ending in STDY (Start day) must have a value less than or equal to its corresponding ENDY (end day) value. | Condition | %Variable.1%STDY is greater than %Variable.1%ENDY |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0109B | Within a study, all AVISITN values must be the same for each unique value group of [PARAMCD, AVISIT] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISITN |
| AD0110B | Within a study, all AVISIT values must be the same for each unique value group of [PARAMCD, AVISITN] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISIT |
| AD0111 | When ARELTM is present, the Anchor Time variable and ARELTMU (Analysis Relative Time unit) must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTM is present, but ARELTMU is not present |
| AD0112 | If ARELTMU (Analysis Relative Time unit) or ARELTM (Analysis Relative Time) is populated, then both must be populated together. | Condition | Only one of these variables is populated: ARELTM, ARELTMU |
| AD0113 | When ARELTM is present, the anchor time variable and ARELTMU must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTMU is present, but ARELTM is not present |
| AD0117B | Within a study, all ATPT values must be the same for each unique value group of [PARAMCD, ATPTN] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPT |
| AD0118B | Within a study, all ATPTN values must be the same for each unique value group of [PARAMCD, ATPT] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPTN |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0123 | Within a study, all PARAMTYP values must be the same for each unique value of PARAMCD when PARAMCD is populated. If a PARAMCD is said to be derived, all instances must be derived. More than one parameter can be derived. | Unique | Inconsistent value for PARAMTYP |
| AD0124 | Within a study, all PARCATy values must be the same for each unique value of PARAMCD when PARAMCD is populated. A Parameter can only be categorized once. However, that Category can be used across PARAMs. | Unique | Inconsistent value for PARCAT%Variable.1% within a unique PARAMCD |
| AD0125B | Within a study, all PARCATy values must be the same for each unique value of PARCATyN when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1% |
| AD0126B | Within a study, all PARCATyN values must be the same for each unique value of PARCATy when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1%N |
| AD0127 | Within a given Subject's PARAMCD, a baseline value is populated (either BASE or BASEC) and there is not at least one record in that group marked as the baseline (ABLFL = Y). | Find | BASE or BASEC is populated for a unique USUBJID, PARAMCD, but no baseline record exists |
| AD0127A | ABLFL is required if BASE or BASEC is present in the dataset. | Find | BASE or BASEC is present, but ABLFL is not present |
| AD0129 | Within a study, all BASE values must be the same for each unique value group of [PARAMCD, BASEC] when PARAMCD, BASE and BASEC are populated (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASE |
| AD0130 | Within a study, all BASEC values must be the same for each unique value group of [PARAMCD, BASE] when PARAMCD, BASE and BASEC are populated. (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASEC |
| AD0132 | When all 3 variables are populated and BASE does not equal 0, Ratio to Base (R2BASE) must equal Analysis Value (AVAL) / Baseline Value (BASE). AD0132A will raise errors when BASE equals 0. AD0132B also complements this check. | Condition | Calculation issue: R2BASE != AVAL / BASE |
| AD0132A | When baseline (BASE) equals 0, the Ratio to Baseline (R2BASE) should not be populated since you cannot divide by 0. AD0132 checks the RSBASE calculation is correct when BASE does not equal 0. | Condition | Calculation issue: BASE = 0, but R2BASE is populated |
| AD0132B | If any of CHG (change), PCHG (percent change), or R2BASE (ratio of Analysis Value to Base) is populated, the values necessary for its calculation must both be present and populated. CHG = AVAL - BASE, PCHG = (AVAL - BASE)/BASE * 100, R2BASE = AVAL / BASE. Once this issue is resolved, there is greater potential for rules AD0132, AD0225, AD0223 to fire. | Condition | Calculation issue: CHG, PCHG or R2BASE is populated, but AVAL and/or BASE are not present and populated |
| AD0133 | When all 3 variables are populated and AyLO does not equal 0, Ratio to AyLO (R2AyLO) must equal Analysis Value (AVAL) / Analysis Range y LO Value (AyLO). | Condition | Calculation issue: R2A%Variable.1%LO != AVAL / A%Variable.1%LO |
| AD0133A | R2AyLO = AVAL / AyLO. therefore if R2AyLO is present, both AVAL and AyLO must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%LO is present, but AVAL and/or A%Variable.1%LO is not present |
| AD0133B | If R2AyLO is populated, the values necessary for its calculation must both be present and populated. R2AyLO = AVAL / AyLO. Once this issue is resolved, there is greater potential for AD0133 to fire. | Condition | Calculation issue: R2A%Variable.1%LO is populated, but AVAL and/or A%Variable.1%LO are not populated |
| AD0133C | When Analysis Range Low (AyLO) equals 0, the Ratio to Analysis Range Low (R2AyLO) should not be populated since you cannot divide by 0. AD0133 checks the calculation is correct when AyLO does not equal 0. | Condition | Calculation issue: A%Variable.1%LO = 0, but R2A%Variable.1%LO is populated |
| AD0134 | When all 3 variables are populated and AyHI does not equal 0, Ratio to AyHI (R2AyHI) must equal Analysis Value (AVAL) / Analysis Range y HI Value (AyHI). | Condition | Calculation issue: R2A%Variable.1%HI != AVAL / A%Variable.1%HI |
| AD0134A | R2AyHI = AVAL / AyHI. Therefore, if R2AyHI is present, both AVAL and AyHI must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%HI is present, but AVAL and/or A%Variable.1%HI is not present |
| AD0134B | If R2AyHI is populated, the values necessary for its calculation must both be present and populated. R2AyHI = AVAL / AyHI. Once this issue is resolved, there is greater potential for AD0134 to fire. | Condition | Calculation issue: R2A%Variable.1%HI is populated, but AVAL and/or A%Variable.1%HI are not populated |
| AD0134C | When Analysis Range High (AyHI) = 0, the Ratio to Analysis Range High (R2AyHI) should not be populated since you cannot divide by 0. AD0134 checks the calculation is correct when AyLO != '0'. | Condition | Calculation issue: A%Variable.1%HI = 0, but R2A%Variable.1%HI is populated |
| AD0135B | Within a study, all SHIFTy values must be the same for each unique value of SHIFTyN when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1% |
| AD0136B | Within a study, all SHIFTyN values must be the same for each unique value of SHIFTy when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1%N |
| AD0137 | When CRITyFL (Analysis Criterion Flag) is populated, it's corresponding parent Analysis Criterion y must be populated. | Condition | CRITyFL is populated, but CRITy is not populated |
| AD0141 | Within a study, All PARAM values must be the same for each unique value of PARAMCD when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAM within a unique PARAMCD |
| AD0142 | Within a study, All PARAMCD values must be the same for each unique value of PARAM when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAMCD within a unique PARAM |
| AD0143 | PARAMCD value must be a max of 8 characters, start with a letter A-Z or underscore, and not contain anything other than letters, numbers, or underscore (_). | Regex | Illegal PARAMCD value |
| AD0146B | Within a study, all PARAM values must be the same for each unique value of PARAMN when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAM |
| AD0147B | Within a study, all PARAMN values must be the same for each unique value of PARAM when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAMN |
| AD0149B | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVALC values must be the same for each unique value of AVAL creating a one-to-one mapping. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVALC |
| AD0150 | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVAL values must be the same for each unique value of AVALC creating a one-to-one mapping. | Unique | Inconsistent value for AVAL |
| AD0151 | Within a study, all CRITy values must be the same for each unique value of PARAMCD when PARAMCD and CRITy are populated. Example: PARAMCD = SYSBP (mm Hg), CRIT1 = SYSBP >160. | Unique | Inconsistent value for CRIT%Variable.1% within a unique PARAMCD |
| AD0152 | If the record is flagged as the baseline (ABLFL = Y), then the baseline Value (BASE) must equal the Analysis Value (AVAL). | Condition | ABLFL = Y, but BASE != AVAL |
| AD0154 | For a set of [Subject (USUBJID), Parameter (PARAMCD), baseline type (BASETYPE)] only one record can be the actual baseline value, marked by ABLFL = Y. | Unique | Multiple baseline records exist for a unique USUBJID, PARAMCD, BASETYPE |
| AD0156 | If Criterion y Flag (CRITyFL) variable is present, there must also be a corresponding Criterion y (CRITy) variable. | Find | CRITyFL is present, but CRITy is not present |
| AD0157 | If Criterion y (CRITy) variable is present, there must also be a corresponding Criterion y Flag (CRITyFL) variable. | Find | CRITy is present, but CRITyFL is not present |
| AD0159 | If AWTDIFF (Analysis Window Diff from Target) is populated AWTARGET (Analysis Window Target) must be populated. AWTDIFF = Absolute value of (ADY or ARELTM) - AWTARGET. Note: A future rule should validate that the calculation is correct. Rule enhanced by Pinnacle 21 to include ADY and ARELTM. If only AWTDIFF is present and populated, this rule will fire even if some or all other variables are not present. This may fire simultaneously with AD0158. | Condition | Calculation issue: AWTDIFF is populated, but AWTARGET and/or one of [ADY, ARELTM] are not both present and populated |
| AD0160 | If Analysis Window Unit (AWU) variable is present, then Analysis Window Beginning Timepoint (AWLO) and (Analysis Window Ending Timepoint) AWHI variables must be present. | Find | AWU is present, but both AWLO and AWHI are not present |
| AD0163 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ATOXGR is not present |
| AD0164 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ABLFL is not present |
| AD0165 | If the record is flagged as the baseline (ABLFL = Y), then the baseline toxicity grade (BTOXGR) value must equal the analysis toxicity grade (ATOXGR) value. | Condition | ABLFL = Y, but BTOXGR != ATOXGR |
| AD0166 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ANRIND is not present |
| AD0167 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ABLFL is not present |
| AD0168 | If the record is flagged as the baseline (ABLFL = Y), then the baseline normal range indicator (BNRIND) value must equal the analysis normal range indicator (ANRIND) value. | Condition | ABLFL = Y, but BNRIND != ANRIND |
| AD0169 | Censor (CNSR) value must be an integer. Defines whether the event was censored (period of observation truncated prior to event being observed). It is strongly recommended to use 0 as an event indicator and positive integers as censoring indicators. It is also recommended that unique positive integers be used to indicate coded descriptions of censoring reasons. CNSR is required for time-to-event parameters. | Regex | CNSR is not an integer >= 0 |
| AD0176 | Analysis Baseline Flag character (ABLFL) must be Y or null. For parameter-level and record-level character population flag variables: Y = yes (included). Null values are allowed. | Match | ABLFL value is not Y or null |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0196 | Unlike SDTM, only some of ADaM Required variables (where Core attribute is 'Req') must be populated. CDISC ADaM rules affirm that PARAM and PARAMCD must be populated, while others are populated as appropriate. Known Exceptions: TRTP, TRTxxP, AGE, AGEU, RACE, SUBJID, AESER. | Required | Required %Variable% value is null |
| AD0198 | At least one Analysis Value (numeric or character) variable must be present in BDS datasets. | Find | Neither AVAL nor AVALC are present in dataset |
| AD0201 | If Actual Pooled Treatment y (TRTAGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTAGyN is present, but TRTAGy is not present |
| AD0211 | ABLFN (Analysis Baseline Flag Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ABLFN value is not 1 or null |
| AD0212 | ANLzzFN (Analyzed Record Flag zz Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ANL%Variable.1%FN value is not 1 or null |
| AD0221 | Within a study, all Category y (*CATy) variable values must be the same for each unique value of the variable it categorizes within a PARAMCD. [AVAL:AVALCATy], [AVALC:AVALCATy], [BASE:BASECATy], [BASEC:BASECATy], [CHG:CHGCATy], [PCHG:PCHGCATy]. A Category may be the same across values. | Unique | Inconsistent value for %Variable.1%CAT%Variable.2% |
| AD0223 | When all 3 variables are populated, Change from Baseline (CHG) must equal Analysis Value (AVAL) minus Baseline Value (BASE). | Condition | Calculation issue: CHG != AVAL - BASE |
| AD0225 | When all 3 variables are populated and base <> 0, Percent Change from Baseline (PCHG) must equal the difference of Analysis Value (AVAL) minus Baseline Value (BASE) divided by the Baseline Value (BASE), expressed as a percentage. AD0225A will raise errors when BASE = 0. AD0132B also complements this check. | Condition | Calculation issue: PCHG != (AVAL - BASE)/BASE * 100 |
| AD0225A | When Baseline (BASE) equals 0, the Percent Change from Baseline (PCHG) should not be populated since you cannot divide by 0. AD0225 checks the PCHG calculation is correct when BASE does not equal 0. AD0132B also complements this rule. | Condition | Calculation issue: BASE = 0, but PCHG is populated |
| AD0237B | Within a study, all Planned Pooled Treatment y (TRTPGy) variable values must be the same for each unique value of Planned Pooled Treatment y (N) (TRTPGyN) variable when both variables are populated. Analogous rule for AD0240. | Unique | Inconsistent value for TRTPG%Variable.1% |
| AD0238B | Within a study, all Planned Pooled Treatment y (N) (TRTPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y (TRTPGy) variable when both variables are populated. Analogous rule for AD0241. | Unique | Inconsistent value for TRTPG%Variable.1%N |
| AD0239 | If both actual treatment (TRTA) and Planned Pooled Treatment y (TRTPGy) are present, then Actual Pooled Treatment y (TRTAGy) variable must be present. | Find | TRTPGy and TRTA are present, but TRTAGy is not present |
| AD0240B | Within a study, all Actual Pooled Treatment y (TRTAGy) variable values must be the same for each unique value of Actual Pooled Treatment y (N) (TRTAGyN) variable when both variables are populated. Analogous rule for AD0237. | Unique | Inconsistent value for TRTAG%Variable.1% |
| AD0241B | Within a study, all Actual Pooled Treatment y (N) (TRTAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y (TRTAGy) variable when both variables are populated. Analogous rule for AD0238. | Unique | Inconsistent value for TRTAG%Variable.1%N |
| AD0245 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but STARTDT is not present |
| AD0246 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but both ADT and ADTM are not present |
| AD0247 | When an event is censored, 3 other variables must be populated. Censor (CNSR) variable qualifies the Analysis Value (AVAL) variable. ADT and ADTM variables are the Analysis Date and Time of event or censoring associated with AVAL. Origin Date for Subject (STARTDT) variable is the original date of risk for the time-to-event analysis. This is generally the time at which a subject is first at risk for the event of interest evaluation. | Condition | CNSR is populated, but AVAL, STARTDT, and one of [ADT, ADTM] are not populated |
| AD0250 | In Time to Event studies, Event or Censoring Description (EVNTDESC) variable is the description of the event of interest or an event that warrants censoring. Therefore, Censor (CNSR) variable should be present. Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, CNSR must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | EVNTDESC and/or CNSDTDSC is present, but CNSR is not present |
| AD0251 | In Time to Event studies, Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, Censor (CNSR) variable must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | CNSDTDSC is present, but CNSR is not present |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0322 | Within a given value of Planned Treatment (TRTP) variable, there can only be one unique value of Planned Pooled Treatment y (TRTPGy) variable. | Unique | Inconsistent value for TRTPGy within a given TRTP |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0327 | Within a Study and a Parameter, all Analysis Value Category y (AVALCATy) variable values must be the same for each unique value of Analysis Value Category y (N) (AVALCAyN) variable when the primary variable AVALCAy is populated. | Unique | Inconsistent value for AVALCAT%Variable.1% |
| AD0328 | Within a Study and a Parameter, all Analysis Value Category y (N) (AVALCAyN) variable values must be the same for each unique value of Analysis Value Category y (AVALCATy) variable when the primary variable AVALCATy is populated. | Unique | Inconsistent value for AVALCA%Variable.1%N |
| AD0329 | Within a Study and a Parameter, all Baseline Category y (BASECATy) variable values must be the same for each unique value of Baseline Category y (N) (BASECAyN) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECAT%Variable.1% |
| AD0330 | Within a Study and a Parameter, all Baseline Category y (N) (BASECAyN) variable values must be the same for each unique value of Baseline Category y (BASECATy) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECA%Variable.1%N |
| AD0331 | Within a Study and a Parameter, all Change from Baseline Category y (CHGCATy) variable values must be the same for each unique value of Change from Baseline Category y (N) (CHGCATyN) variable when variable CHGCATyN is populated. | Unique | Inconsistent value for CHGCAT%Variable.1% |
| AD0332 | Within a Study and a Parameter, all Change from Baseline Category y (N) (CHGCATyN) variable values must be the same for each unique value of Change from Baseline Category y (CHGCATy) variable when the primary variable CHGCATy is populated. | Unique | Inconsistent value for CHGCAT%Variable.1%N |
| AD0333 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (PCHGCATy) variable values must be the same for each unique value of Percent Chg from Baseline Category y (N) (PCHGCAyN) variable when variable PCHGCAyN is populated. | Unique | Inconsistent value for PCHGCAT%Variable.1% |
| AD0334 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (N) (PCHGCAyN) variable values must be the same for each unique value of Percent Chg from Baseline Category y (PCHGCATy) when the primary variable PCHGCATy is populated. | Unique | Inconsistent value for PCHGCA%Variable.1%N |
| AD0337 | If Multi-Response Criterion y Evaluation (MCRITyML) flag variable is present, there must also be a corresponding Analysis Multi-Response Criterion y (MCRITy) variable. | Find | MCRIT%Variable.1% variable is not present when MCRIT%Variable.1%ML is present |
| AD0338 | If Analysis Multi-Response Criterion y (MCRITy) variable is present, there must also be a corresponding Multi-Response Criterion y Evaluation (MCRITyML) flag variable. | Find | MCRIT%Variable.1%ML is not present when MCRIT%Variable.1% is present |
| AD0339 | When Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then its corresponding Analysis Multi-Response Criterion y (MCRITy) variable must be also populated. | Condition | MCRIT%Variable.1% is not populated when MCRIT%Variable.1%ML is populated |
| AD0340 | Within a Study and a Parameter, all Multi-Response Criterion y Evaluation (MCRITyML) variable values must be the same for each unique value of Multi-Response Criterion y Eval (N) (MCRITyMN) variable when variable MCRITyMN is populated. | Unique | Inconsistent value for MCRIT%Variable.1%ML |
| AD0341 | Within a Study and a Parameter, all Multi-Response Criterion y Eval (N) (MCRITyMN) variable values must be the same for each unique value of Multi-Response Criterion y Evaluation (MCRITyML) variable when the primary variable MCRITyML is populated. | Unique | Inconsistent value for MCRIT%Variable.1%MN |
| AD0342 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (ANRLO) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (C) (ANRLOC) variable when variable ANRLOC is populated. | Unique | Inconsistent value for ANRLO |
| AD0343 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (C) (ANRLOC) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (ANRLO) variable when variable ANRLO is populated. | Unique | Inconsistent value for ANRLOC |
| AD0344 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (ANRHI) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (C) (ANRHIC) variable when variable ANRHIC is populated. | Unique | Inconsistent value for ANRHI |
| AD0345 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (C) (ANRHIC) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (ANRHI) when variable ANRHI is populated. | Unique | Inconsistent value for ANRHIC |
| AD0346 | If Ratio to Analysis Range y Lower Limit (R2AyLO) flag variable is present, there must also be a corresponding Analysis Range y Lower Limit (AyLO) variable. | Find | A%Variable.1%LO variable is not present when R2A%Variable.1%LO is present |
| AD0347 | Within a Study and a Parameter, all Analysis Range y Lower Limit( AyLO) variable values must be the same for each unique value of Analysis Range y Lower Limit (C) (AyLOC) variable when variable AyLOC is populated. | Unique | Inconsistent value for A%Variable.1%LO |
| AD0348 | Within a Study and a Parameter, all Analysis Range y Lower Limit (C) (AyLOC) variable values must be the same for each unique value of Analysis Range y Lower Limit (AyLO) variable when variable AyLO is populated. | Unique | Inconsistent value for A%Variable.1%LOC |
| AD0349 | If Ratio to Analysis Range y Upper Limit (R2AyHI) variable is present, there must also be a corresponding Analysis Range y Upper Limit (AyHI) variable. | Find | A%Variable.1%HI variable is not present when R2A%Variable.1%HI is present |
| AD0350 | Within a Study and a Parameter, all Analysis Range y Upper Limit (AyHI) variable values must be the same for each unique value of Analysis Range y Upper Limit (C) (AyHIC) variable when variable AyHIC is populated. | Unique | Inconsistent value for A%Variable.1%HI |
| AD0351 | Within a Study and a Parameter, all Analysis Range y Upper Limit (C) (AyHIC) variable values must be the same for each unique value of Analysis Range y Upper Limit (AyHI) variable when variable AyHI is populated. | Unique | Inconsistent value for A%Variable.1%HIC |
| AD0352 | Analysis Range y Indicator (AyIND) variable indicates the relationship of Analysis Value (AVAL) to the analysis range variables Analysis Range y Lower Limit (AyLO) and/or Analysis Range y Upper Limit (AyHI), or the relationship of Analysis Value (C) (AVALC) variable to the analysis range variables Analysis Range y Lower Limit (C) (AyLOC) and/or Analysis Range y Upper Limit (C) AyHIC. At least one of AyLO, AyHI, AyLOC, and AyHIC is expected to be present for use of AyIND variable. | Find | None of A%Variable.1%LO, A%Variable.1%HI, A%Variable.1%LOC, or A%Variable.1%HIC variables is present when A%Variable.1%IND is present |
| AD0353 | If the record is flagged as the Analysis Baseline (ABLFL = Y), then the value of Baseline Analysis Range y Indicator (ByIND) variable must equal the value of Analysis Range y Indicator (AyIND) variable. | Condition | B%Variable.1%IND != A%Variable.1%IND when ABLFL = Y |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0381 | Within a parameter, there should be only a single value of a primary variable (*) for a given value of secondary variable (*N), considering only those rows on which both variables are populated. Covers variable pairs: BTOXGR/BTOXGRN, BTOXGRL/BTOXGRLN, BTOXGRH/BTOXGRHN, ATOXGRL/ATOXGRLN, ATOXGRH/ATOXGRHN. | Unique | Inconsistent value for %Variable% within a unique PARAMCD |
| AD0382 | Within a parameter, there should be only a single value of Baseline Toxicity Grade (N) (BTOXGRN) variable for a given value of Baseline Toxicity Grade (BTOXGR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRN within a unique PARAMCD |
| AD0384 | Within a parameter, there should be only a single value of Baseline Toxicity Grade Low (N) (BTOXGRLN) variable for a given value of Baseline Toxicity Grade Low (BTOXGRL) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRLN within a unique PARAMCD |
| AD0388 | Within a parameter, there should be only a single value of Baseline Toxicity Grade High (N) (BTOXGRHN) variable for a given value of Baseline Toxicity Grade High (BTOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRHN within a unique PARAMCD |
| AD0396 | Within a parameter, there should be only a single value of ATOXGRLN for a given value of ATOXGRL, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRLN within a unique PARAMCD |
| AD0400 | Within a parameter, there should be only a single value of Analysis Toxicity Grade Low (N) (ATOXGRHN) variable for a given value of Analysis Toxicity Grade Low (ATOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRHN within a unique PARAMCD |
| AD0401 | On a given record, if Analysis Toxicity Description Low (ATOXDSCL) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade Low (ATOXGRL) variable values must be populated. | Condition | AVAL is not populated or ATOXGRL is not populated, and ATOXDSCL is populated |
| AD0402 | On a given record, if Analysis Toxicity Description High (ATOXDSCH) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade High (ATOXGRH) variable values must be populated. | Condition | AVAL is not populated or ATOXGRH is not populated, and ATOXDSCH is populated |
| AD0403 | Within a subject, there should be only a single value of Analysis Toxicity Description Low (ATOXDSCL) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCL within a subject and parameter |
| AD0405 | Within a subject, there should be only a single value of Analysis Toxicity Description High (ATOXDSCH) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCH within a subject and parameter |
| AD0450 | On a given record, if Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then Multi-Response Criterion y Eval (N) (MCRITyMN) variable value must also be populated. | Condition | MCRITyML is populated, but MCRITyMN is not populated |
| AD0451 | On a given record, if Multi-Response Criterion y Eval (N) (MCRITyMN) variable value is populated, then Multi-Response Criterion y Evaluation (MCRITyML) variable value must also be populated. | Condition | MCRITyMN is populated, but MCRITyML is not populated |
| AD0482 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable BCHGCATy is populated, but its secondary variable BCHGCAyN is not populated |
| AD0483 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable BCHGCAyN is populated, but its primary variable BCHGCATy is not populated |
| AD0484 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable PBCHGCAy is populated, but its secondary variable PBCHGCyN is not populated |
| AD0485 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable PBCHGCyN is populated, but its primary variable PBCHGCAy is not populated |
| AD0492 | If Shift $y (SHIFTy) variable is present, the variable pair it is describing should also be present. Pairs include (BASECATy/ AVALCATy), (BNRIND/ANRIND), (ByIND/AyIND), (BTOXGR/ATOXGR), (BTOXGRL/ATOXGRL), (BTOXGRH/ATOXGRH), (BASE/AVAL) and (BASEC/AVALC). | Find | SHIFTy is present and all of the following variable pairs (BASECATy, AVALCATy), (BNRIND, ANRIND), (ByIND, AyIND), (BTOXGR, ATOXGR), (BTOXGRL, ATOXGRL), (BTOXGRH, ATOXGRH), (BASE, AVAL) and (BASEC, AVALC) are not present |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0543 | If Analysis Value Category y (N) (AVALCAyN) variable is used in a dataset, Analysis Value Category y (AVALCATy) variable must also be present in that dataset. | Find | AVALCAyN is present and AVALCATy is not present |
| AD0544 | If Baseline Category y (N) (BASECAyN) variable is used in a dataset, Baseline Category y (BASECATy) variable must also be present in that dataset. | Find | BASECAyN is present and BASECATy is not present |
| AD0545 | If Change from Baseline Category y (N) (CHGCATyN) variable is used in a dataset, Change from Baseline Category y (CHGCATy) variable must also be present in that dataset. | Find | CHGCATyN is present and CHGCATy is not present |
| AD0546 | If Percent Chg from Baseline Category y (N) (PCHGCAyN) variable is used in a dataset, Percent Chg from Baseline Category y (PCHGCATy) variable must also be present in that dataset. | Find | PCHGCAyN is present and PCHGCATy is not present |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0565 | If Change to Baseline Category y (N) (BCHGCAyN) variable is used in a dataset, Change to Baseline Category y (BCHGCATy) variable must also be present in that dataset. | Find | BCHGCAyN is present and BCHGCATy is not present |
| AD0566 | If Percent Change to Baseline Category y (N) (PBCHGCyN) variable is used in a dataset, Percent Change to Baseline Category y (PBCHGCAy) variable must also be present in that dataset. | Find | PBCHGCyN is present and PBCHGCAy is not present |
| AD0582 | When all 3 variables are populated, Change to Baseline (BCHG) must equal Baseline Value (BASE) minus Analysis Value (AVAL). | Condition | Calculation issue: BCHG != BASE - AVAL |
| AD0584 | Within a parameter, there should be only a single value of Change to Baseline Category y (BCHGCATy) variable for a given value of Change to Baseline Category y (N) (BCHGCAyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCATy within a unique PARAMCD |
| AD0585 | Within a parameter, there should be only a single value of Change to Baseline Category y (N) (BCHGCAyN) variable for a given value of Change to Baseline Category y (BCHGCATy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCAyN within a unique PARAMCD |
| AD0586 | When all 3 variables are populated and base <> 0, Percent Change to Baseline (PBCHG) must equal the difference of Baseline Value (BASE) minus Analysis Value (AVAL) divided by the analysis value (AVAL), expressed as a percentage. | Condition | Calculation issue: PBCHG != (BASE - AVAL)/AVAL * 100 |
| AD0588 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (PBCHGCAy) variable for a given value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCAy within a unique PARAMCD |
| AD0589 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable for a given value of Percent Change to Baseline Category y (PBCHGCAy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCyN within a unique PARAMCD |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD0658 | NCAXFN (PK NCA Exclusion Flag (N)) must be 1 or null. It is a numeric flag for exclusion of a record into a PK NCA calculation: 1 = exclusion, null = inclusion. | Match | NCAXFN value is not 1 or null |
| AD0659 | PKSUMXFN (PK Summary Exclusion Flag (N)) must be 1 or null. It is a numeric flag for exclusion of a record from a PK summary: 1 = exclusion, null = inclusion. | Match | PKSUMXFN value is not 1 or null |
| AD0660 | METABFL (Metabolite Flag) must be Y or null. | Match | METABFL value is not Y or null |
| AD0661 | When ADOSEDUR is present, NDOSEDUR and/or DOSEDURU must also be included in the dataset. | Find | ADOSEDUR is present and NDOSEDUR or DOSEDURU is not present |
| AD0662 | If TMPCTDF (Percent Diff. Nominal vs. Actual Time) is populated, both ARRLT (Actual Rel. Time from Ref. Dose) and NRRLT (Nominal Rel. Time from Ref. Dose) must be populated. | Condition | TMPCTDF is populated and ARRLT or NRRLT are not populated |
| AD0665 | If Subject Cohort (COHORTN) numeric variable is present, there must be a corresponding Subject Cohort (COHORT) character variable. | Find | COHORTN is present and COHORT is not present |
| AD0666 | If DOSPCTDF (Percent Diff. Nominal vs. Actual Dose) is populated, both DOSEP (Planned Treatment Dose) and DOSEA (Actual Treatment Dose) must be populated. | Condition | DOSPCTDF is populated and DOSEP and DOSEA are not populated |
| AD0667 | If DOSPCTDF (Percent Diff. Nominal vs. Actual Dose) is populated, then TRTA (Actual Treatment) must be populated. | Condition | DOSPCTDF is populated and TRTA is not populated |
| AD0670 | If Analysis Cycle (ACYCLEC) character variable is present, there must be a corresponding Analysis Cycle (ACYCLE) numeric variable. | Find | ACYCLEC is present and ACYCLE is not present |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| AD1018 | For Analysis Flag zz (ANLzzFL) and Analysis Flag zz (N) (ANLzzFN) variables, 'zz' is an index for the zzth record selection algorithm where 'zz' is must be in [01-99]. Similar to CDISC ADaM Validation Checks No. 299-303. | Condition | Illegal variable name: zz is not in [01-99] for ANLzzFL/FN |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Basic Data Structure
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| ASEQ | Analysis Sequence Number | float | 200 | |
| TRTP | Planned Treatment | text | 200 | |
| TRTPN | Planned Treatment (N) | float | 200 | |
| TRTA | Actual Treatment | text | 200 | |
| TRTAN | Actual Treatment (N) | float | 200 | |
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTPG# | Planned Pooled Treatment $1 | text | 200 | |
| TRTPG#N | Planned Pooled Treatment $1 (N) | integer | 200 | |
| TRTAG# | Actual Pooled Treatment $1 | text | 200 | |
| TRTAG#N | Actual Pooled Treatment $1 (N) | integer | 200 | |
| DOSEP | Planned Treatment Dose | float | 200 | |
| DOSCUMP | Cumulative Planned Treatment Dose | float | 200 | |
| DOSEA | Actual Treatment Dose | float | 200 | |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units | text | 200 | |
| ADT | Analysis Date | integer | 200 | |
| ATM | Analysis Time | integer | 200 | |
| ADTM | Analysis Datetime | integer | 200 | |
| ADY | Analysis Relative Day | integer | 200 | |
| ADTF | Analysis Date Imputation Flag | text | 200 | |
| ATMF | Analysis Time Imputation Flag | text | 200 | |
| ASTDT | Analysis Start Date | integer | 200 | |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Datetime | integer | 200 | |
| ASTDY | Analysis Start Relative Day | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| AENDT | Analysis End Date | integer | 200 | |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Datetime | integer | 200 | |
| AENDY | Analysis End Relative Day | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| AVISIT | Analysis Visit | text | 200 | |
| AVISITN | Analysis Visit (N) | float | 200 | |
| ATPT | Analysis Timepoint | text | 200 | |
| ATPTN | Analysis Timepoint (N) | integer | 200 | |
| ATPTREF | Analysis Timepoint Reference | text | 200 | |
| APHASE | Phase | text | 200 | |
| APHASEN | Phase (N) | integer | 200 | |
| APERIOD | Period | integer | 200 | |
| APERIODC | Period (C) | text | 200 | |
| ASPER | Subperiod within Period | integer | 200 | |
| ASPERC | Subperiod within Period (C) | text | 200 | |
| ARELTM | Analysis Relative Time | integer | 200 | |
| ARELTMU | Analysis Relative Time Unit | text | 200 | |
| APERSDT | Period Start Date | integer | 200 | |
| APERSTM | Period Start Time | integer | 200 | |
| APERSDTM | Period Start Datetime | integer | 200 | |
| APERSDTF | Period Start Date Imput. Flag | text | 200 | |
| APERSTMF | Period Start Time Imput. Flag | text | 200 | |
| APEREDT | Period End Date | integer | 200 | |
| APERETM | Period End Time | integer | 200 | |
| APEREDTM | Period End Datetime | integer | 200 | |
| APEREDTF | Period End Date Imput. Flag | text | 200 | |
| APERETMF | Period End Time Imput. Flag | text | 200 | |
| ASPRSDT | Subperiod Start Date | integer | 200 | |
| ASPRSTM | Subperiod Start Time | integer | 200 | |
| ASPRSDTM | Subperiod Start Datetime | integer | 200 | |
| ASPRSDTF | Subperiod Start Date Imput. Flag | text | 200 | |
| ASPRSTMF | Subperiod Start Time Imput. Flag | text | 200 | |
| ASPREDT | Subperiod End Date | integer | 200 | |
| ASPRETM | Subperiod End Time | integer | 200 | |
| ASPREDTM | Subperiod End Datetime | integer | 200 | |
| ASPREDTF | Subperiod End Date Imput. Flag | text | 200 | |
| ASPRETMF | Subperiod End Time Imput. Flag | text | 200 | |
| PHSDT | Phase Start Date | integer | 200 | |
| PHSTM | Phase Start Time | integer | 200 | |
| PHSDTM | Phase Start Datetime | integer | 200 | |
| PHSDTF | Phase Start Date Imput. Flag | text | 200 | |
| PHSTMF | Phase Start Time Imput. Flag | text | 200 | |
| PHEDT | Phase End Date | integer | 200 | |
| PHETM | Phase End Time | integer | 200 | |
| PHEDTM | Phase End Datetime | integer | 200 | |
| PHEDTF | Phase End Date Imput. Flag | text | 200 | |
| PHETMF | Phase End Time Imput. Flag | text | 200 | |
| *DT | integer | 200 | ||
| *TM | integer | 200 | ||
| *DTM | integer | 200 | ||
| *ADY | integer | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 | ||
| *SDT | integer | 200 | ||
| *STM | integer | 200 | ||
| *SDTM | integer | 200 | ||
| *SDY | integer | 200 | ||
| *SDTF | text | 200 | ||
| *STMF | text | 200 | ||
| *EDT | integer | 200 | ||
| *ETM | integer | 200 | ||
| *EDTM | integer | 200 | ||
| *EDY | integer | 200 | ||
| *EDTF | text | 200 | ||
| *ETMF | text | 200 | ||
| PARAM | Parameter |
|
text | 200 |
| PARAMCD | Parameter Code |
|
text | 200 |
| PARAMN | Parameter (N) | float | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| AVAL | Analysis Value | float | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| AVALCAT# | Analysis Value Category $1 | text | 200 | |
| AVALCA#N | Analysis Value Category $1 (N) | integer | 200 | |
| BASE | Baseline Value | float | 200 | |
| BASEC | Baseline Value (C) | text | 200 | |
| BASECAT# | Baseline Category $1 | text | 200 | |
| BASECA#N | Baseline Category $1 (N) | integer | 200 | |
| BASETYPE | Baseline Type | text | 200 | |
| CHG | Change from Baseline | float | 200 | |
| CHGCAT# | Change from Baseline Category $1 | text | 200 | |
| CHGCAT#N | Change from Baseline Category $1 (N) | integer | 200 | |
| PCHG | Percent Change from Baseline | float | 200 | |
| PCHGCAT# | Percent Chg from Baseline Category $1 | text | 200 | |
| PCHGCA#N | Percent Chg from Baseline Category $1 (N) | integer | 200 | |
| R2BASE | Ratio to Baseline | float | 200 | |
| R2A#LO | Ratio to Analysis Range $1 Lower Limit | float | 200 | |
| R2A#HI | Ratio to Analysis Range $1 Upper Limit | float | 200 | |
| SHIFT# | Shift $1 | text | 200 | |
| SHIFT#N | Shift $1 (N) | integer | 200 | |
| BCHG | Change to Baseline | float | 200 | |
| BCHGCAT# | Change to Baseline Category $1 | text | 200 | |
| BCHGCA#N | Change to Baseline Category $1 (N) | integer | 200 | |
| PBCHG | Percent Change to Baseline | float | 200 | |
| PBCHGCA# | Percent Change to Baseline Category $1 | text | 200 | |
| PBCHGC#N | Percent Change to Baseline Category $1 (N) | integer | 200 | |
| CRIT# | Analysis Criterion $1 | text | 200 | |
| CRIT#FL | Criterion $1 Evaluation Result Flag | text | 200 | |
| CRIT#FN | Criterion $1 Evaluation Result Flag (N) | integer | 200 | |
| MCRIT# | Analysis Multi-Response Criterion $1 | text | 200 | |
| MCRIT#ML | Multi-Response Criterion $1 Evaluation | text | 200 | |
| MCRIT#MN | Multi-Response Criterion $1 Eval (N) | float | 200 | |
| DTYPE | Derivation Type | text | 200 | |
| AWRANGE | Analysis Window Valid Relative Range | text | 200 | |
| AWTARGET | Analysis Window Target | integer | 200 | |
| AWTDIFF | Analysis Window Diff from Target | integer | 200 | |
| AWLO | Analysis Window Beginning Timepoint | integer | 200 | |
| AWHI | Analysis Window Ending Timepoint | integer | 200 | |
| AWU | Analysis Window Unit | text | 200 | |
| STARTDT | Time-to-Event Origin Date for Subject | integer | 200 | |
| STARTDTM | Time-to-Event Origin Datetime | integer | 200 | |
| STARTDTF | Origin Date Imputation Flag | text | 200 | |
| STARTTMF | Origin Time Imputation Flag | text | 200 | |
| CNSR | Censor | integer | 200 | |
| EVNTDESC | Event or Censoring Description | text | 200 | |
| CNSDTDSC | Censor Date Description | text | 200 | |
| ATOXGR | Analysis Toxicity Grade | text | 200 | |
| ATOXGRN | Analysis Toxicity Grade (N) | float | 200 | |
| BTOXGR | Baseline Toxicity Grade | text | 200 | |
| BTOXGRN | Baseline Toxicity Grade (N) | float | 200 | |
| ANRIND | Analysis Reference Range Indicator | text | 200 | |
| BNRIND | Baseline Reference Range Indicator | text | 200 | |
| ANRLO | Analysis Normal Range Lower Limit | float | 200 | |
| ANRLOC | Analysis Normal Range Lower Limit (C) | text | 200 | |
| ANRHI | Analysis Normal Range Upper Limit | float | 200 | |
| ANRHIC | Analysis Normal Range Upper Limit (C) | text | 200 | |
| A#LO | Analysis Range $1 Lower Limit | float | 200 | |
| A#LOC | Analysis Range $1 Lower Limit (C) | text | 200 | |
| A#HI | Analysis Range $1 Upper Limit | float | 200 | |
| A#HIC | Analysis Range $1 Upper Limit (C) | text | 200 | |
| A#IND | Analysis Range $1 Indicator | text | 200 | |
| B#IND | Baseline Analysis Range $1 Indicator | text | 200 | |
| ATOXGRL | Analysis Toxicity Grade Low | text | 200 | |
| ATOXGRLN | Analysis Toxicity Grade Low (N) | float | 200 | |
| ATOXGRH | Analysis Toxicity Grade High | text | 200 | |
| ATOXGRHN | Analysis Toxicity Grade High (N) | float | 200 | |
| BTOXGRL | Baseline Toxicity Grade Low | text | 200 | |
| BTOXGRLN | Baseline Toxicity Grade Low (N) | float | 200 | |
| BTOXGRH | Baseline Toxicity Grade High | text | 200 | |
| BTOXGRHN | Baseline Toxicity Grade High (N) | float | 200 | |
| ATOXDSCL | Analysis Toxicity Description Low | text | 200 | |
| ATOXDSCH | Analysis Toxicity Description High | text | 200 | |
| ABLFL | Baseline Record Flag | text | 200 | |
| ABLFN | Baseline Record Flag (N) | integer | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| ANL#FN | Analysis Flag $1 (N) | integer | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| ONTRTFN | On Treatment Record Flag (N) | integer | 200 | |
| LVOTFL | Last Value On Treatment Record Flag | text | 200 | |
| LVOTFN | Last Value On Treatment Record Flag (N) | integer | 200 | |
| ITTRFL | Intent-To-Treat Record-Level Flag | text | 200 | |
| ITTRFN | Intent-To-Treat Record-Level Flag (N) | integer | 200 | |
| SAFRFL | Safety Analysis Record-Level Flag | text | 200 | |
| SAFRFN | Safety Analysis Record-Level Flag (N) | integer | 200 | |
| FASRFL | Full Analysis Set Record-Level Flag | text | 200 | |
| FASRFN | Full Analysis Set Record-Level Flag (N) | integer | 200 | |
| PPROTRFL | Per-Protocol Record-Level Flag | text | 200 | |
| PPROTRFN | Per-Protocol Record-Level Flag (N) | integer | 200 | |
| COMPLRFL | Completers Record-Level Flag | text | 200 | |
| COMPRFN | Completers Record-Level Flag (N) | integer | 200 | |
| ITTPFL | Intent-To-Treat Parameter-Level Flag | text | 200 | |
| ITTPFN | Intent-To-Treat Param-Level Flag (N) | integer | 200 | |
| SAFPFL | Safety Analysis Parameter-Level Flag | text | 200 | |
| SAFPFN | Safety Analysis Param-Level Flag (N) | integer | 200 | |
| FASPFL | Full Analysis Set Parameter-Level Flag | text | 200 | |
| FASPFN | Full Analysis Set Param-Level Flag (N) | integer | 200 | |
| PPROTPFL | Per-Protocol Parameter-Level Flag | text | 200 | |
| PPROTPFN | Per-Protocol Parameter-Level Flag (N) | integer | 200 | |
| COMPLPFL | Completers Parameter-Level Flag | text | 200 | |
| COMPLPFN | Completers Parameter-Level Flag (N) | integer | 200 | |
| SRCDOM | Source Data | text | 200 | |
| SRCVAR | Source Variable | text | 200 | |
| SRCSEQ | Source Sequence Number | float | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| * | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0090 | At least 1 treatment variable is required in a BDS dataset. This requirement is satisfied by any of the subject-level (ARM, ACTARM, TRTxxP, TRTxxA, TRTSEQP, TRTSEQA, TRxxPGy, TRxxAGy, TSEQPGy, TSEQAGy) or record-level (TRTP, TRTA, TRTPGy, TRTAGy) treatment variables. One is allowed to use any treatment variable in analysis of BDS. Any subject-level treatment variable may be copied into the BDS dataset from ADSL. | Find | None of the subject-level or record-level treatment variables defined in the IG are present |
| AD0092B | Within a study, all TRTPN values must be the same for each unique value of TRTP when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTPN |
| AD0093B | Within a study, all TRTP values must be the same for each unique value of TRTPN when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTP |
| AD0095B | Within a study, all TRTAN values must be the same for each unique value of TRTA when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTAN |
| AD0096B | Within a study, all TRTA values must be the same for each unique value of TRTAN when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTA |
| AD0097 | If Planned Pooled Treatment y (TRTPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTPGyN is present, but TRTPGy is not present |
| AD0098 | Any variable ending in SDY (Start day) must have a value less than or equal to its corresponding EDY (end day) value. | Condition | %Variable.1%SDY is greater than %Variable.1%EDY |
| AD0099 | Any variable ending in STDY (Start day) must have a value less than or equal to its corresponding ENDY (end day) value. | Condition | %Variable.1%STDY is greater than %Variable.1%ENDY |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0109B | Within a study, all AVISITN values must be the same for each unique value group of [PARAMCD, AVISIT] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISITN |
| AD0110B | Within a study, all AVISIT values must be the same for each unique value group of [PARAMCD, AVISITN] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISIT |
| AD0111 | When ARELTM is present, the Anchor Time variable and ARELTMU (Analysis Relative Time unit) must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTM is present, but ARELTMU is not present |
| AD0112 | If ARELTMU (Analysis Relative Time unit) or ARELTM (Analysis Relative Time) is populated, then both must be populated together. | Condition | Only one of these variables is populated: ARELTM, ARELTMU |
| AD0113 | When ARELTM is present, the anchor time variable and ARELTMU must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTMU is present, but ARELTM is not present |
| AD0117B | Within a study, all ATPT values must be the same for each unique value group of [PARAMCD, ATPTN] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPT |
| AD0118B | Within a study, all ATPTN values must be the same for each unique value group of [PARAMCD, ATPT] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPTN |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0123 | Within a study, all PARAMTYP values must be the same for each unique value of PARAMCD when PARAMCD is populated. If a PARAMCD is said to be derived, all instances must be derived. More than one parameter can be derived. | Unique | Inconsistent value for PARAMTYP |
| AD0124 | Within a study, all PARCATy values must be the same for each unique value of PARAMCD when PARAMCD is populated. A Parameter can only be categorized once. However, that Category can be used across PARAMs. | Unique | Inconsistent value for PARCAT%Variable.1% within a unique PARAMCD |
| AD0125B | Within a study, all PARCATy values must be the same for each unique value of PARCATyN when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1% |
| AD0126B | Within a study, all PARCATyN values must be the same for each unique value of PARCATy when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1%N |
| AD0127 | Within a given Subject's PARAMCD, a baseline value is populated (either BASE or BASEC) and there is not at least one record in that group marked as the baseline (ABLFL = Y). | Find | BASE or BASEC is populated for a unique USUBJID, PARAMCD, but no baseline record exists |
| AD0127A | ABLFL is required if BASE or BASEC is present in the dataset. | Find | BASE or BASEC is present, but ABLFL is not present |
| AD0129 | Within a study, all BASE values must be the same for each unique value group of [PARAMCD, BASEC] when PARAMCD, BASE and BASEC are populated (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASE |
| AD0130 | Within a study, all BASEC values must be the same for each unique value group of [PARAMCD, BASE] when PARAMCD, BASE and BASEC are populated. (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASEC |
| AD0132 | When all 3 variables are populated and BASE does not equal 0, Ratio to Base (R2BASE) must equal Analysis Value (AVAL) / Baseline Value (BASE). AD0132A will raise errors when BASE equals 0. AD0132B also complements this check. | Condition | Calculation issue: R2BASE != AVAL / BASE |
| AD0132A | When baseline (BASE) equals 0, the Ratio to Baseline (R2BASE) should not be populated since you cannot divide by 0. AD0132 checks the RSBASE calculation is correct when BASE does not equal 0. | Condition | Calculation issue: BASE = 0, but R2BASE is populated |
| AD0132B | If any of CHG (change), PCHG (percent change), or R2BASE (ratio of Analysis Value to Base) is populated, the values necessary for its calculation must both be present and populated. CHG = AVAL - BASE, PCHG = (AVAL - BASE)/BASE * 100, R2BASE = AVAL / BASE. Once this issue is resolved, there is greater potential for rules AD0132, AD0225, AD0223 to fire. | Condition | Calculation issue: CHG, PCHG or R2BASE is populated, but AVAL and/or BASE are not present and populated |
| AD0133 | When all 3 variables are populated and AyLO does not equal 0, Ratio to AyLO (R2AyLO) must equal Analysis Value (AVAL) / Analysis Range y LO Value (AyLO). | Condition | Calculation issue: R2A%Variable.1%LO != AVAL / A%Variable.1%LO |
| AD0133A | R2AyLO = AVAL / AyLO. therefore if R2AyLO is present, both AVAL and AyLO must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%LO is present, but AVAL and/or A%Variable.1%LO is not present |
| AD0133B | If R2AyLO is populated, the values necessary for its calculation must both be present and populated. R2AyLO = AVAL / AyLO. Once this issue is resolved, there is greater potential for AD0133 to fire. | Condition | Calculation issue: R2A%Variable.1%LO is populated, but AVAL and/or A%Variable.1%LO are not populated |
| AD0133C | When Analysis Range Low (AyLO) equals 0, the Ratio to Analysis Range Low (R2AyLO) should not be populated since you cannot divide by 0. AD0133 checks the calculation is correct when AyLO does not equal 0. | Condition | Calculation issue: A%Variable.1%LO = 0, but R2A%Variable.1%LO is populated |
| AD0134 | When all 3 variables are populated and AyHI does not equal 0, Ratio to AyHI (R2AyHI) must equal Analysis Value (AVAL) / Analysis Range y HI Value (AyHI). | Condition | Calculation issue: R2A%Variable.1%HI != AVAL / A%Variable.1%HI |
| AD0134A | R2AyHI = AVAL / AyHI. Therefore, if R2AyHI is present, both AVAL and AyHI must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%HI is present, but AVAL and/or A%Variable.1%HI is not present |
| AD0134B | If R2AyHI is populated, the values necessary for its calculation must both be present and populated. R2AyHI = AVAL / AyHI. Once this issue is resolved, there is greater potential for AD0134 to fire. | Condition | Calculation issue: R2A%Variable.1%HI is populated, but AVAL and/or A%Variable.1%HI are not populated |
| AD0134C | When Analysis Range High (AyHI) = 0, the Ratio to Analysis Range High (R2AyHI) should not be populated since you cannot divide by 0. AD0134 checks the calculation is correct when AyLO != '0'. | Condition | Calculation issue: A%Variable.1%HI = 0, but R2A%Variable.1%HI is populated |
| AD0135B | Within a study, all SHIFTy values must be the same for each unique value of SHIFTyN when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1% |
| AD0136B | Within a study, all SHIFTyN values must be the same for each unique value of SHIFTy when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1%N |
| AD0137 | When CRITyFL (Analysis Criterion Flag) is populated, it's corresponding parent Analysis Criterion y must be populated. | Condition | CRITyFL is populated, but CRITy is not populated |
| AD0141 | Within a study, All PARAM values must be the same for each unique value of PARAMCD when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAM within a unique PARAMCD |
| AD0142 | Within a study, All PARAMCD values must be the same for each unique value of PARAM when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAMCD within a unique PARAM |
| AD0143 | PARAMCD value must be a max of 8 characters, start with a letter A-Z or underscore, and not contain anything other than letters, numbers, or underscore (_). | Regex | Illegal PARAMCD value |
| AD0146B | Within a study, all PARAM values must be the same for each unique value of PARAMN when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAM |
| AD0147B | Within a study, all PARAMN values must be the same for each unique value of PARAM when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAMN |
| AD0149B | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVALC values must be the same for each unique value of AVAL creating a one-to-one mapping. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVALC |
| AD0150 | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVAL values must be the same for each unique value of AVALC creating a one-to-one mapping. | Unique | Inconsistent value for AVAL |
| AD0151 | Within a study, all CRITy values must be the same for each unique value of PARAMCD when PARAMCD and CRITy are populated. Example: PARAMCD = SYSBP (mm Hg), CRIT1 = SYSBP >160. | Unique | Inconsistent value for CRIT%Variable.1% within a unique PARAMCD |
| AD0152 | If the record is flagged as the baseline (ABLFL = Y), then the baseline Value (BASE) must equal the Analysis Value (AVAL). | Condition | ABLFL = Y, but BASE != AVAL |
| AD0154 | For a set of [Subject (USUBJID), Parameter (PARAMCD), baseline type (BASETYPE)] only one record can be the actual baseline value, marked by ABLFL = Y. | Unique | Multiple baseline records exist for a unique USUBJID, PARAMCD, BASETYPE |
| AD0156 | If Criterion y Flag (CRITyFL) variable is present, there must also be a corresponding Criterion y (CRITy) variable. | Find | CRITyFL is present, but CRITy is not present |
| AD0157 | If Criterion y (CRITy) variable is present, there must also be a corresponding Criterion y Flag (CRITyFL) variable. | Find | CRITy is present, but CRITyFL is not present |
| AD0159 | If AWTDIFF (Analysis Window Diff from Target) is populated AWTARGET (Analysis Window Target) must be populated. AWTDIFF = Absolute value of (ADY or ARELTM) - AWTARGET. Note: A future rule should validate that the calculation is correct. Rule enhanced by Pinnacle 21 to include ADY and ARELTM. If only AWTDIFF is present and populated, this rule will fire even if some or all other variables are not present. This may fire simultaneously with AD0158. | Condition | Calculation issue: AWTDIFF is populated, but AWTARGET and/or one of [ADY, ARELTM] are not both present and populated |
| AD0160 | If Analysis Window Unit (AWU) variable is present, then Analysis Window Beginning Timepoint (AWLO) and (Analysis Window Ending Timepoint) AWHI variables must be present. | Find | AWU is present, but both AWLO and AWHI are not present |
| AD0163 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ATOXGR is not present |
| AD0164 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ABLFL is not present |
| AD0165 | If the record is flagged as the baseline (ABLFL = Y), then the baseline toxicity grade (BTOXGR) value must equal the analysis toxicity grade (ATOXGR) value. | Condition | ABLFL = Y, but BTOXGR != ATOXGR |
| AD0166 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ANRIND is not present |
| AD0167 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ABLFL is not present |
| AD0168 | If the record is flagged as the baseline (ABLFL = Y), then the baseline normal range indicator (BNRIND) value must equal the analysis normal range indicator (ANRIND) value. | Condition | ABLFL = Y, but BNRIND != ANRIND |
| AD0169 | Censor (CNSR) value must be an integer. Defines whether the event was censored (period of observation truncated prior to event being observed). It is strongly recommended to use 0 as an event indicator and positive integers as censoring indicators. It is also recommended that unique positive integers be used to indicate coded descriptions of censoring reasons. CNSR is required for time-to-event parameters. | Regex | CNSR is not an integer >= 0 |
| AD0176 | Analysis Baseline Flag character (ABLFL) must be Y or null. For parameter-level and record-level character population flag variables: Y = yes (included). Null values are allowed. | Match | ABLFL value is not Y or null |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0196 | Unlike SDTM, only some of ADaM Required variables (where Core attribute is 'Req') must be populated. CDISC ADaM rules affirm that PARAM and PARAMCD must be populated, while others are populated as appropriate. Known Exceptions: TRTP, TRTxxP, AGE, AGEU, RACE, SUBJID, AESER. | Required | Required %Variable% value is null |
| AD0198 | At least one Analysis Value (numeric or character) variable must be present in BDS datasets. | Find | Neither AVAL nor AVALC are present in dataset |
| AD0201 | If Actual Pooled Treatment y (TRTAGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTAGyN is present, but TRTAGy is not present |
| AD0211 | ABLFN (Analysis Baseline Flag Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ABLFN value is not 1 or null |
| AD0212 | ANLzzFN (Analyzed Record Flag zz Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ANL%Variable.1%FN value is not 1 or null |
| AD0221 | Within a study, all Category y (*CATy) variable values must be the same for each unique value of the variable it categorizes within a PARAMCD. [AVAL:AVALCATy], [AVALC:AVALCATy], [BASE:BASECATy], [BASEC:BASECATy], [CHG:CHGCATy], [PCHG:PCHGCATy]. A Category may be the same across values. | Unique | Inconsistent value for %Variable.1%CAT%Variable.2% |
| AD0223 | When all 3 variables are populated, Change from Baseline (CHG) must equal Analysis Value (AVAL) minus Baseline Value (BASE). | Condition | Calculation issue: CHG != AVAL - BASE |
| AD0225 | When all 3 variables are populated and base <> 0, Percent Change from Baseline (PCHG) must equal the difference of Analysis Value (AVAL) minus Baseline Value (BASE) divided by the Baseline Value (BASE), expressed as a percentage. AD0225A will raise errors when BASE = 0. AD0132B also complements this check. | Condition | Calculation issue: PCHG != (AVAL - BASE)/BASE * 100 |
| AD0225A | When Baseline (BASE) equals 0, the Percent Change from Baseline (PCHG) should not be populated since you cannot divide by 0. AD0225 checks the PCHG calculation is correct when BASE does not equal 0. AD0132B also complements this rule. | Condition | Calculation issue: BASE = 0, but PCHG is populated |
| AD0237B | Within a study, all Planned Pooled Treatment y (TRTPGy) variable values must be the same for each unique value of Planned Pooled Treatment y (N) (TRTPGyN) variable when both variables are populated. Analogous rule for AD0240. | Unique | Inconsistent value for TRTPG%Variable.1% |
| AD0238B | Within a study, all Planned Pooled Treatment y (N) (TRTPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y (TRTPGy) variable when both variables are populated. Analogous rule for AD0241. | Unique | Inconsistent value for TRTPG%Variable.1%N |
| AD0239 | If both actual treatment (TRTA) and Planned Pooled Treatment y (TRTPGy) are present, then Actual Pooled Treatment y (TRTAGy) variable must be present. | Find | TRTPGy and TRTA are present, but TRTAGy is not present |
| AD0240B | Within a study, all Actual Pooled Treatment y (TRTAGy) variable values must be the same for each unique value of Actual Pooled Treatment y (N) (TRTAGyN) variable when both variables are populated. Analogous rule for AD0237. | Unique | Inconsistent value for TRTAG%Variable.1% |
| AD0241B | Within a study, all Actual Pooled Treatment y (N) (TRTAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y (TRTAGy) variable when both variables are populated. Analogous rule for AD0238. | Unique | Inconsistent value for TRTAG%Variable.1%N |
| AD0245 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but STARTDT is not present |
| AD0246 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but both ADT and ADTM are not present |
| AD0247 | When an event is censored, 3 other variables must be populated. Censor (CNSR) variable qualifies the Analysis Value (AVAL) variable. ADT and ADTM variables are the Analysis Date and Time of event or censoring associated with AVAL. Origin Date for Subject (STARTDT) variable is the original date of risk for the time-to-event analysis. This is generally the time at which a subject is first at risk for the event of interest evaluation. | Condition | CNSR is populated, but AVAL, STARTDT, and one of [ADT, ADTM] are not populated |
| AD0250 | In Time to Event studies, Event or Censoring Description (EVNTDESC) variable is the description of the event of interest or an event that warrants censoring. Therefore, Censor (CNSR) variable should be present. Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, CNSR must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | EVNTDESC and/or CNSDTDSC is present, but CNSR is not present |
| AD0251 | In Time to Event studies, Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, Censor (CNSR) variable must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | CNSDTDSC is present, but CNSR is not present |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0322 | Within a given value of Planned Treatment (TRTP) variable, there can only be one unique value of Planned Pooled Treatment y (TRTPGy) variable. | Unique | Inconsistent value for TRTPGy within a given TRTP |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0327 | Within a Study and a Parameter, all Analysis Value Category y (AVALCATy) variable values must be the same for each unique value of Analysis Value Category y (N) (AVALCAyN) variable when the primary variable AVALCAy is populated. | Unique | Inconsistent value for AVALCAT%Variable.1% |
| AD0328 | Within a Study and a Parameter, all Analysis Value Category y (N) (AVALCAyN) variable values must be the same for each unique value of Analysis Value Category y (AVALCATy) variable when the primary variable AVALCATy is populated. | Unique | Inconsistent value for AVALCA%Variable.1%N |
| AD0329 | Within a Study and a Parameter, all Baseline Category y (BASECATy) variable values must be the same for each unique value of Baseline Category y (N) (BASECAyN) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECAT%Variable.1% |
| AD0330 | Within a Study and a Parameter, all Baseline Category y (N) (BASECAyN) variable values must be the same for each unique value of Baseline Category y (BASECATy) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECA%Variable.1%N |
| AD0331 | Within a Study and a Parameter, all Change from Baseline Category y (CHGCATy) variable values must be the same for each unique value of Change from Baseline Category y (N) (CHGCATyN) variable when variable CHGCATyN is populated. | Unique | Inconsistent value for CHGCAT%Variable.1% |
| AD0332 | Within a Study and a Parameter, all Change from Baseline Category y (N) (CHGCATyN) variable values must be the same for each unique value of Change from Baseline Category y (CHGCATy) variable when the primary variable CHGCATy is populated. | Unique | Inconsistent value for CHGCAT%Variable.1%N |
| AD0333 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (PCHGCATy) variable values must be the same for each unique value of Percent Chg from Baseline Category y (N) (PCHGCAyN) variable when variable PCHGCAyN is populated. | Unique | Inconsistent value for PCHGCAT%Variable.1% |
| AD0334 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (N) (PCHGCAyN) variable values must be the same for each unique value of Percent Chg from Baseline Category y (PCHGCATy) when the primary variable PCHGCATy is populated. | Unique | Inconsistent value for PCHGCA%Variable.1%N |
| AD0337 | If Multi-Response Criterion y Evaluation (MCRITyML) flag variable is present, there must also be a corresponding Analysis Multi-Response Criterion y (MCRITy) variable. | Find | MCRIT%Variable.1% variable is not present when MCRIT%Variable.1%ML is present |
| AD0338 | If Analysis Multi-Response Criterion y (MCRITy) variable is present, there must also be a corresponding Multi-Response Criterion y Evaluation (MCRITyML) flag variable. | Find | MCRIT%Variable.1%ML is not present when MCRIT%Variable.1% is present |
| AD0339 | When Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then its corresponding Analysis Multi-Response Criterion y (MCRITy) variable must be also populated. | Condition | MCRIT%Variable.1% is not populated when MCRIT%Variable.1%ML is populated |
| AD0340 | Within a Study and a Parameter, all Multi-Response Criterion y Evaluation (MCRITyML) variable values must be the same for each unique value of Multi-Response Criterion y Eval (N) (MCRITyMN) variable when variable MCRITyMN is populated. | Unique | Inconsistent value for MCRIT%Variable.1%ML |
| AD0341 | Within a Study and a Parameter, all Multi-Response Criterion y Eval (N) (MCRITyMN) variable values must be the same for each unique value of Multi-Response Criterion y Evaluation (MCRITyML) variable when the primary variable MCRITyML is populated. | Unique | Inconsistent value for MCRIT%Variable.1%MN |
| AD0342 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (ANRLO) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (C) (ANRLOC) variable when variable ANRLOC is populated. | Unique | Inconsistent value for ANRLO |
| AD0343 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (C) (ANRLOC) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (ANRLO) variable when variable ANRLO is populated. | Unique | Inconsistent value for ANRLOC |
| AD0344 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (ANRHI) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (C) (ANRHIC) variable when variable ANRHIC is populated. | Unique | Inconsistent value for ANRHI |
| AD0345 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (C) (ANRHIC) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (ANRHI) when variable ANRHI is populated. | Unique | Inconsistent value for ANRHIC |
| AD0346 | If Ratio to Analysis Range y Lower Limit (R2AyLO) flag variable is present, there must also be a corresponding Analysis Range y Lower Limit (AyLO) variable. | Find | A%Variable.1%LO variable is not present when R2A%Variable.1%LO is present |
| AD0347 | Within a Study and a Parameter, all Analysis Range y Lower Limit( AyLO) variable values must be the same for each unique value of Analysis Range y Lower Limit (C) (AyLOC) variable when variable AyLOC is populated. | Unique | Inconsistent value for A%Variable.1%LO |
| AD0348 | Within a Study and a Parameter, all Analysis Range y Lower Limit (C) (AyLOC) variable values must be the same for each unique value of Analysis Range y Lower Limit (AyLO) variable when variable AyLO is populated. | Unique | Inconsistent value for A%Variable.1%LOC |
| AD0349 | If Ratio to Analysis Range y Upper Limit (R2AyHI) variable is present, there must also be a corresponding Analysis Range y Upper Limit (AyHI) variable. | Find | A%Variable.1%HI variable is not present when R2A%Variable.1%HI is present |
| AD0350 | Within a Study and a Parameter, all Analysis Range y Upper Limit (AyHI) variable values must be the same for each unique value of Analysis Range y Upper Limit (C) (AyHIC) variable when variable AyHIC is populated. | Unique | Inconsistent value for A%Variable.1%HI |
| AD0351 | Within a Study and a Parameter, all Analysis Range y Upper Limit (C) (AyHIC) variable values must be the same for each unique value of Analysis Range y Upper Limit (AyHI) variable when variable AyHI is populated. | Unique | Inconsistent value for A%Variable.1%HIC |
| AD0352 | Analysis Range y Indicator (AyIND) variable indicates the relationship of Analysis Value (AVAL) to the analysis range variables Analysis Range y Lower Limit (AyLO) and/or Analysis Range y Upper Limit (AyHI), or the relationship of Analysis Value (C) (AVALC) variable to the analysis range variables Analysis Range y Lower Limit (C) (AyLOC) and/or Analysis Range y Upper Limit (C) AyHIC. At least one of AyLO, AyHI, AyLOC, and AyHIC is expected to be present for use of AyIND variable. | Find | None of A%Variable.1%LO, A%Variable.1%HI, A%Variable.1%LOC, or A%Variable.1%HIC variables is present when A%Variable.1%IND is present |
| AD0353 | If the record is flagged as the Analysis Baseline (ABLFL = Y), then the value of Baseline Analysis Range y Indicator (ByIND) variable must equal the value of Analysis Range y Indicator (AyIND) variable. | Condition | B%Variable.1%IND != A%Variable.1%IND when ABLFL = Y |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0381 | Within a parameter, there should be only a single value of a primary variable (*) for a given value of secondary variable (*N), considering only those rows on which both variables are populated. Covers variable pairs: BTOXGR/BTOXGRN, BTOXGRL/BTOXGRLN, BTOXGRH/BTOXGRHN, ATOXGRL/ATOXGRLN, ATOXGRH/ATOXGRHN. | Unique | Inconsistent value for %Variable% within a unique PARAMCD |
| AD0382 | Within a parameter, there should be only a single value of Baseline Toxicity Grade (N) (BTOXGRN) variable for a given value of Baseline Toxicity Grade (BTOXGR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRN within a unique PARAMCD |
| AD0384 | Within a parameter, there should be only a single value of Baseline Toxicity Grade Low (N) (BTOXGRLN) variable for a given value of Baseline Toxicity Grade Low (BTOXGRL) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRLN within a unique PARAMCD |
| AD0388 | Within a parameter, there should be only a single value of Baseline Toxicity Grade High (N) (BTOXGRHN) variable for a given value of Baseline Toxicity Grade High (BTOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRHN within a unique PARAMCD |
| AD0396 | Within a parameter, there should be only a single value of ATOXGRLN for a given value of ATOXGRL, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRLN within a unique PARAMCD |
| AD0400 | Within a parameter, there should be only a single value of Analysis Toxicity Grade Low (N) (ATOXGRHN) variable for a given value of Analysis Toxicity Grade Low (ATOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRHN within a unique PARAMCD |
| AD0401 | On a given record, if Analysis Toxicity Description Low (ATOXDSCL) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade Low (ATOXGRL) variable values must be populated. | Condition | AVAL is not populated or ATOXGRL is not populated, and ATOXDSCL is populated |
| AD0402 | On a given record, if Analysis Toxicity Description High (ATOXDSCH) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade High (ATOXGRH) variable values must be populated. | Condition | AVAL is not populated or ATOXGRH is not populated, and ATOXDSCH is populated |
| AD0403 | Within a subject, there should be only a single value of Analysis Toxicity Description Low (ATOXDSCL) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCL within a subject and parameter |
| AD0405 | Within a subject, there should be only a single value of Analysis Toxicity Description High (ATOXDSCH) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCH within a subject and parameter |
| AD0450 | On a given record, if Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then Multi-Response Criterion y Eval (N) (MCRITyMN) variable value must also be populated. | Condition | MCRITyML is populated, but MCRITyMN is not populated |
| AD0451 | On a given record, if Multi-Response Criterion y Eval (N) (MCRITyMN) variable value is populated, then Multi-Response Criterion y Evaluation (MCRITyML) variable value must also be populated. | Condition | MCRITyMN is populated, but MCRITyML is not populated |
| AD0482 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable BCHGCATy is populated, but its secondary variable BCHGCAyN is not populated |
| AD0483 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable BCHGCAyN is populated, but its primary variable BCHGCATy is not populated |
| AD0484 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable PBCHGCAy is populated, but its secondary variable PBCHGCyN is not populated |
| AD0485 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable PBCHGCyN is populated, but its primary variable PBCHGCAy is not populated |
| AD0492 | If Shift $y (SHIFTy) variable is present, the variable pair it is describing should also be present. Pairs include (BASECATy/ AVALCATy), (BNRIND/ANRIND), (ByIND/AyIND), (BTOXGR/ATOXGR), (BTOXGRL/ATOXGRL), (BTOXGRH/ATOXGRH), (BASE/AVAL) and (BASEC/AVALC). | Find | SHIFTy is present and all of the following variable pairs (BASECATy, AVALCATy), (BNRIND, ANRIND), (ByIND, AyIND), (BTOXGR, ATOXGR), (BTOXGRL, ATOXGRL), (BTOXGRH, ATOXGRH), (BASE, AVAL) and (BASEC, AVALC) are not present |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0543 | If Analysis Value Category y (N) (AVALCAyN) variable is used in a dataset, Analysis Value Category y (AVALCATy) variable must also be present in that dataset. | Find | AVALCAyN is present and AVALCATy is not present |
| AD0544 | If Baseline Category y (N) (BASECAyN) variable is used in a dataset, Baseline Category y (BASECATy) variable must also be present in that dataset. | Find | BASECAyN is present and BASECATy is not present |
| AD0545 | If Change from Baseline Category y (N) (CHGCATyN) variable is used in a dataset, Change from Baseline Category y (CHGCATy) variable must also be present in that dataset. | Find | CHGCATyN is present and CHGCATy is not present |
| AD0546 | If Percent Chg from Baseline Category y (N) (PCHGCAyN) variable is used in a dataset, Percent Chg from Baseline Category y (PCHGCATy) variable must also be present in that dataset. | Find | PCHGCAyN is present and PCHGCATy is not present |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0565 | If Change to Baseline Category y (N) (BCHGCAyN) variable is used in a dataset, Change to Baseline Category y (BCHGCATy) variable must also be present in that dataset. | Find | BCHGCAyN is present and BCHGCATy is not present |
| AD0566 | If Percent Change to Baseline Category y (N) (PBCHGCyN) variable is used in a dataset, Percent Change to Baseline Category y (PBCHGCAy) variable must also be present in that dataset. | Find | PBCHGCyN is present and PBCHGCAy is not present |
| AD0582 | When all 3 variables are populated, Change to Baseline (BCHG) must equal Baseline Value (BASE) minus Analysis Value (AVAL). | Condition | Calculation issue: BCHG != BASE - AVAL |
| AD0584 | Within a parameter, there should be only a single value of Change to Baseline Category y (BCHGCATy) variable for a given value of Change to Baseline Category y (N) (BCHGCAyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCATy within a unique PARAMCD |
| AD0585 | Within a parameter, there should be only a single value of Change to Baseline Category y (N) (BCHGCAyN) variable for a given value of Change to Baseline Category y (BCHGCATy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCAyN within a unique PARAMCD |
| AD0586 | When all 3 variables are populated and base <> 0, Percent Change to Baseline (PBCHG) must equal the difference of Baseline Value (BASE) minus Analysis Value (AVAL) divided by the analysis value (AVAL), expressed as a percentage. | Condition | Calculation issue: PBCHG != (BASE - AVAL)/AVAL * 100 |
| AD0588 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (PBCHGCAy) variable for a given value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCAy within a unique PARAMCD |
| AD0589 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable for a given value of Percent Change to Baseline Category y (PBCHGCAy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCyN within a unique PARAMCD |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| AD1018 | For Analysis Flag zz (ANLzzFL) and Analysis Flag zz (N) (ANLzzFN) variables, 'zz' is an index for the zzth record selection algorithm where 'zz' is must be in [01-99]. Similar to CDISC ADaM Validation Checks No. 299-303. | Condition | Illegal variable name: zz is not in [01-99] for ANLzzFL/FN |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Analysis Adverse Events
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| AESEQ | Sequence Number |
|
float | 200 |
| ASEQ | Analysis Sequence Number | float | 200 | |
| SRCDOM | Source Data | text | 200 | |
| SRCSEQ | Source Sequence Number | float | 200 | |
| AETERM | Reported Term for the Adverse Event |
|
text | 200 |
| AEDECOD | Dictionary-Derived Term |
|
text | 200 |
| AEBODSYS | Body System or Organ Class |
|
text | 200 |
| AEBDSYCD | Body System or Organ Class Code |
|
integer | 200 |
| AELLT | Lowest Level Term |
|
text | 200 |
| AELLTCD | Lowest Level Term Code |
|
integer | 200 |
| AEPTCD | Preferred Term Code |
|
integer | 200 |
| AEHLT | High Level Term |
|
text | 200 |
| AEHLTCD | High Level Term Code |
|
integer | 200 |
| AEHLGT | High Level Group Term |
|
text | 200 |
| AEHLGTCD | High Level Group Term Code |
|
integer | 200 |
| AESOC | Primary System Organ Class |
|
text | 200 |
| AESOCCD | Primary System Organ Class Code |
|
integer | 200 |
| CMTRT | Reported Name of Drug, Med, or Therapy | text | 200 | |
| CMDECOD | Standardized Medication Name | text | 200 | |
| CMCLAS | Medication Class | text | 200 | |
| CMCLASCD | Medication Class Code | text | 200 | |
| ATC# | ATC Level $1 Text | text | 200 | |
| ATC#CD | ATC Level $1 Code | text | 200 | |
| AECAT | Category for Adverse Event | text | 200 | |
| AESCAT | Subcategory for Adverse Event | text | 200 | |
| ACAT# | Analysis Category $1 | text | 200 | |
| AESTDTC | Start Date/Time of Adverse Event |
|
datetime | 200 |
| ASTDT | Analysis Start Date |
|
integer | 200 |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Date/Time | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| AEENDTC | End Date/Time of Adverse Event |
|
datetime | 200 |
| AENDT | Analysis End Date |
|
integer | 200 |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Date/Time | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| ASTDY | Analysis Start Relative Day |
|
integer | 200 |
| AESTDY | Study Day of Start of Adverse Event | integer | 200 | |
| AENDY | Analysis End Relative Day |
|
integer | 200 |
| AEENDY | Study Day of End of Adverse Event | integer | 200 | |
| ADURN | Analysis Duration (N) | float | 200 | |
| ADURU | Analysis Duration Units | text | 200 | |
| AEDUR | Duration of Adverse Event | datetime | 200 | |
| APERIOD | Period | float | 200 | |
| APERIODC | Period (C) | text | 200 | |
| APHASE | Phase | text | 200 | |
| AEOCCUR | Occurrence | text | 200 | |
| AEPRESP | Pre-Specified Adverse Event | text | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| TRTEMFL | Treatment Emergent Analysis Flag |
|
text | 200 |
| AETRTEM | Treatment Emergent Flag | text | 200 | |
| TREM#FL | Treatment Emergent Period $1 Flag | text | 200 | |
| TRTEM#FL | Treatment Emergent Analysis $1 Flag | text | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| ONTR#FL | On Treatment Period $1 Flag | text | 200 | |
| ONTRT#FL | On Treatment Record $1 Flag | text | 200 | |
| PREFL | Pre-treatment Flag | text | 200 | |
| FUPFL | Follow-up Flag | text | 200 | |
| AOCCFL | 1st Occurrence within Subject Flag | text | 200 | |
| AOCCPFL | 1st Occurrence of Preferred Term Flag | text | 200 | |
| AOCCIFL | 1st Max Sev./Int. Occurrence Flag | text | 200 | |
| AOCCPIFL | 1st Max Sev./Int. Occur Within PT Flag | text | 200 | |
| AOCC*FL | text | 200 | ||
| AOCCSFL | 1st Occurrence of SOC Flag | text | 200 | |
| AOCCSIFL | 1st Max Sev./Int. Occur Within SOC Flag | text | 200 | |
| DOSEON | Treatment Dose at Record Start | float | 200 | |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units | text | 200 | |
| AESER | Serious Event |
|
text | 200 |
| AESEV | Severity/Intensity | text | 200 | |
| AESEVN | Severity/Intensity (N) | integer | 200 | |
| ASEV | Analysis Severity/Intensity | text | 200 | |
| ASEVN | Analysis Severity/Intensity (N) | integer | 200 | |
| SEVGR# | Pooled Severity Group $1 | text | 200 | |
| SEVGR#N | Pooled Severity Group $1 (N) | integer | 200 | |
| AEREL | Causality |
|
text | 200 |
| AERELN | Causality (N) | float | 200 | |
| AREL | Analysis Causality | text | 200 | |
| ARELN | Analysis Causality (N) | float | 200 | |
| RELGR# | Pooled Causality Group $1 | text | 200 | |
| RELGR#N | Pooled Causality Group $1 (N) | integer | 200 | |
| AETOXGR | Standard Toxicity Grade | text | 200 | |
| AETOXGRN | Standard Toxicity Grade (N) | integer | 200 | |
| ATOXGR | Analysis Toxicity Grade | text | 200 | |
| ATOXGRN | Analysis Toxicity Grade (N) | integer | 200 | |
| TOXGGR# | Pooled Toxicity Grade Group $1 | text | 200 | |
| TOXGGR#N | Pooled Toxicity Grade $1 (N) | integer | 200 | |
| AEACN | Action Taken with Study Treatment | text | 200 | |
| CMSTAT | Completion Status | text | 200 | |
| CMINDC | Indication | text | 200 | |
| CMDOSE | Dose per Administration | float | 200 | |
| CMDOSFRM | Dose Form | text | 200 | |
| CMDOSRGM | Intended Dose Regimen | text | 200 | |
| CMROUTE | Route of Administration | text | 200 | |
| SMQ#NAM | SMQ $1 Name | text | 200 | |
| SMQ#CD | SMQ $1 Code | integer | 200 | |
| SMQ#SC | SMQ $1 Scope | text | 200 | |
| SMQ#SCN | SMQ $1 Scope (N) | integer | 200 | |
| CQ#NAM | Customized Query $1 Name | text | 200 | |
| ADECOD# | Analysis Dictionary-Derived Term $1 | text | 200 | |
| DECDORG# | PT in Original Dictionary $1 | text | 200 | |
| BDSYORG# | SOC in Original Dictionary $1 | text | 200 | |
| HLGTORG# | HLGT in Original Dictionary $1 | text | 200 | |
| HLTORG# | HLT in Original Dictionary $1 | text | 200 | |
| LLTORG# | LLT in Original Dictionary $1 | text | 200 | |
| LLTNORG# | LLT Code in Original Dictionary $1 | text | 200 | |
| CLASORG# | Medication Class in Orig Dictionary $1 | text | 200 | |
| CLCDORG# | Medication Class Code in Orig Dict $1 | text | 200 | |
| ATyCORG# | ATC Level y Code in Orig Dictionary $1 | text | 200 | |
| ATyTORG# | ATC Level y Text in Orig Dictionary $1 | text | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| AVAL | Analysis Value | integer | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| PARAM | Parameter | text | 200 | |
| PARAMCD | Parameter Code | text | 200 | |
| PARAMN | Parameter (N) | integer | 200 | |
| PARAMTYP | Parameter Type | text | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0258 | Adverse Events specified in ADAE dataset must be traceable to the SDTM AE domain based on Study Identifier (STUDYID), Unique Subject Identifier (USUBJID) and Sequence Number (AESEQ) variables. ADaM ADAE dataset should be validated with SDTM AE domain to facility this check. There must be traceability between ADaM and SDTM study data. This usually refers to mapping issues since an ADaM ADAE records must have been born from SDTM AE domain. | Lookup | Record key from ADaM ADAE is not traceable to SDTM.AE (extra ADAE recs) |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0272 | 1st Occurrence * Flag (AOCC*FL) variable values must be Y or null. | Match | %Variable% flag value is not Y or null |
| AD0273 | For additional Flag (AOCCzzFL) variables representing the 1st Occurrence of an analysis event or datapoint, zz must be nth flag variable (01 to 99). The main purpose of these flags is to facilitate data point traceability between records in the dataset and unique counts in the summary displays. In addition, if a Time to Event (TTE) Analysis dataset is built off of Adverse Events, the flags provide a crucial link between the summary records in the TTE BDS and the source of the records in ADAE. If the producer of the ADAE dataset has standard programs in place to summarize unique counts of events, then they may choose not to create these flags. | Condition | Illegal variable name: zz is not in [01-99] for AOCCzzFL |
| AD0279 | Severity/Intensity (N) (AESEVN) and Analysis Severity/Intensity (N) (ASEVN) variables must have values in [1, 2, 3] when populated. AESEVN can be null. ASEVN cannot be null. | Match | %Variable% value != 1, 2, 3, or null |
| AD0280B | Across studies, all Severity/Intensity (AESEV) variable values must be the same for each unique value of Severity/Intensity (N) (AESEVN) variable when both variables are populated. | Unique | Inconsistent value for AESEV |
| AD0281B | Across studies, all Severity/Intensity (N) (AESEVN) variable must be the same for each unique value of Severity/Intensity (AESEV) variable when both variables are populated. | Unique | Inconsistent value for AESEVN |
| AD0283B | Across studies, all Analysis Severity/Intensity (ASEV) variable values must be the same for each unique value of Analysis Severity/Intensity (N) (ASEVN) variable when both variables are populated. | Unique | Inconsistent value for ASEV |
| AD0284B | Across studies, all Analysis Severity/Intensity (N) (ASEVN) variable values must be the same for each unique value of Analysis Severity/Intensity (ASEV) variable when both variables are populated. | Unique | Inconsistent value for ASEVN |
| AD0287B | Across studies, all Causality (AEREL) variable values must be the same for each unique value of Causality (N) (AERELN) variable when both variables are populated. | Unique | Inconsistent value for AEREL |
| AD0288B | Across studies, all Causality (N) (AERELN) variable values must be the same for each unique value of Causality (AEREL) variable when both variables are populated. | Unique | Inconsistent value for AERELN |
| AD0289B | Across studies, all Analysis Causality (AREL) variable values must be the same for each unique value of Analysis Causality (N) (ARELN) variable when both variables are populated. | Unique | Inconsistent value for AREL |
| AD0290B | Across studies, all Analysis Causality (N) (ARELN) variable values must be the same for each unique value of Analysis Causality (AREL) variable when both variables are populated. | Unique | Inconsistent value for ARELN |
| AD0293B | Across studies, all Standard Toxicity Grade (AETOXGR) variable values must be the same for each unique value of Standard Toxicity Grade (N) (AETOXGRN) variable when both variables are populated. | Unique | Inconsistent value for AETOXGR |
| AD0294B | Across studies, all Standard Toxicity Grade (N) (AETOXGRN) variable values must be the same for each unique value of Standard Toxicity Grade (AETOXGR) variable when both variables are populated. | Unique | Inconsistent value for AETOXGRN |
| AD0295B | Across studies, all Analysis Toxicity Grade (ATOXGR) variable values must be the same for each unique value of Analysis Toxicity Grade (N) (ATOXGRN) variable when both variables are populated. | Unique | Inconsistent value for ATOXGR |
| AD0296B | Across studies, all Analysis Toxicity Grade (N) (ATOXGRN) variable values must be the same for each unique value of Analysis Toxicity Grade (ATOXGR) variable when both variables are populated. | Unique | Inconsistent value for ATOXGRN |
| AD0299 | For Standardized MedDRA Query Variables of Name, Code and Scope(N), zz must be the ordered SMQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for SMQzz(NAM, CD, SC, SCN) |
| AD0303 | For Customized MedDRA Query Name (SMQzzNAM) variables , zz must be the ordered CQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for CQzzNAM |
| AD0304 | If any of SMQ Name (SMQzzNAM), SMQ Code (SMQzzCD) or SMQ Scope (SMQzzSC) variable is populated, then all of these MedDRA SMQ variables must be populated together. | Condition | Only some of these variables are present and populated: SMQ%Variable.1%NAM, SMQ%Variable.1%CD, SMQ%Variable.1%SC |
| AD0310B | Across studies, all SMQ Scope (SMQzzSC ) variable values must be the same for each unique value of SMQ Scope (N) (SMQzzSCN) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SC |
| AD0311B | Across studies, all SMQ Scope (N) (SMQzzSCN) variable values must be the same for each unique value of SMQ Scope (SMQzzSC ) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SCN |
| AD0312 | Standardized MedDRA Query Scope (SMQzzSC) variable value must be BROAD, NARROW, or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SC value != BROAD, NARROW or null |
| AD0313 | Standardized MedDRA Query Scope Numeric (SMQzzSCN) variable value must be 1 (BROAD), 2 (NARROW), or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SCN value != 1, 2 or null |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0364 | Treatment Dose Units (DOSEU) variable is required, Treatment Dose at Record Start (DOSEON) or Cumulative Actual Treatment Dose (DOSCUMA) variable is present in the dataset. | Find | DOSEU variable is not present when DOSEON or DOSCUMA is present |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD0647 | If TREMxxFL is included, TRTEMFL is defined as the overall treatment emergent flag. If any Treatment Emergent Period xx Flag (TREMxxFL) variables are flagged Y, then the overall Treatment Emergent Analysis Flag (TRTEMFL) variable should also be Y. | Condition | TREMxxFL = Y and TRTEMFL != Y |
| AD0648 | If TRTEMwFL is included, TRTEMFL is defined as the overall treatment emergent flag. If any Treatment Emergent Analysis w Flag (TRTEMwFL) variables are flagged Y, then the overall Treatment Emergent Analysis Flag (TRTEMFL) variable should also be Y. | Condition | TRTEMwFL = Y and TRTEMFL != Y |
| AD0649 | If ONTRxxFL is included, ONTRTFL is defined as the overall on-treatment flag. If any On Treatment Period xx Flag (ONTRxxFL) variables are flagged Y, then the overall On Treatment Record Flag (ONTRTFL) variable should also be Y. | Condition | ONTRxxFL = Y and ONTRTFL != Y |
| AD0650 | If ONTRTwFL is included, ONTRTFL is defined as the overall on-treatment flag. If any On Treatment Record w Flag (ONTRTwFL) variables are flagged Y, then the overall On Treatment Record Flag (ONTRTFL) variable should also be Y. | Condition | ONTRTwFL = Y and ONTRTFL != Y |
| AD0651 | If ONTRxxFL is included, then ONTRTFL must be included and is defined as the overall on treatment flag. | Find | ONTRxxFL is present but ONTRTFL is not present |
| AD0652 | If ONTRTwFL is included, then ONTRTFL must be included and is defined as the overall on treatment flag. | Find | ONTRTwFL is present but ONTRTFL is not present |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Occurrence Data Structure
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| *SEQ | float | 200 | ||
| ASEQ | Analysis Sequence Number | float | 200 | |
| SRCDOM | Source Data | text | 200 | |
| SRCSEQ | Source Sequence Number | float | 200 | |
| --TERM | Reported Term |
|
text | 200 |
| --DECOD | Dictionary-Derived Term | text | 200 | |
| --BODSYS | Body System or Organ Class | text | 200 | |
| --BDSYCD | Body System or Organ Class Code | integer | 200 | |
| --LLT | Lowest Level Term | text | 200 | |
| --LLTCD | Lowest Level Term Code | integer | 200 | |
| --PTCD | Preferred Term Code | integer | 200 | |
| --HLT | High Level Term | text | 200 | |
| --HLTCD | High Level Term Code | integer | 200 | |
| --HLGT | High Level Group Term | text | 200 | |
| --HLGTCD | High Level Group Term Code | integer | 200 | |
| --SOC | Primary System Organ Class | text | 200 | |
| --SOCCD | Primary System Organ Class Code | integer | 200 | |
| CMTRT | Reported Name of Drug, Med, or Therapy | text | 200 | |
| CMDECOD | Standardized Medication Name | text | 200 | |
| CMCLAS | Medication Class | text | 200 | |
| CMCLASCD | Medication Class Code | text | 200 | |
| ATC# | ATC Level $1 Text | text | 200 | |
| ATC#CD | ATC Level $1 Code | text | 200 | |
| --CAT | Category | text | 200 | |
| --SCAT | Subcategory | text | 200 | |
| ACAT# | Analysis Category $1 | text | 200 | |
| --STDTC | Start Date/Time of Observation | datetime | 200 | |
| ASTDT | Analysis Start Date | integer | 200 | |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Date/Time | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| --ENDTC | End Date/Time of Observation | datetime | 200 | |
| AENDT | Analysis End Date | integer | 200 | |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Date/Time | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| ASTDY | Analysis Start Relative Day | integer | 200 | |
| --STDY | Study Day of Start of Observation | integer | 200 | |
| AENDY | Analysis End Relative Day | integer | 200 | |
| --ENDY | Study Day of End of Observation | integer | 200 | |
| ADURN | Analysis Duration (N) | float | 200 | |
| ADURU | Analysis Duration Units | text | 200 | |
| --DUR | Duration of XX | datetime | 200 | |
| APERIOD | Period | float | 200 | |
| APERIODC | Period (C) | text | 200 | |
| APHASE | Phase | text | 200 | |
| --OCCUR | XX Occurrence | text | 200 | |
| --PRESP | XX Pre-Specified | text | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| TRTEMFL | Treatment Emergent Analysis Flag | text | 200 | |
| AETRTEM | Treatment Emergent Flag | text | 200 | |
| TREM#FL | Treatment Emergent Period $1 Flag | text | 200 | |
| TRTEM#FL | Treatment Emergent Analysis $1 Flag | text | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| ONTR#FL | On Treatment Period $1 Flag | text | 200 | |
| ONTRT#FL | On Treatment Record $1 Flag | text | 200 | |
| PREFL | Pre-treatment Flag | text | 200 | |
| FUPFL | Follow-up Flag | text | 200 | |
| AOCCFL | 1st Occurrence within Subject Flag | text | 200 | |
| AOCCPFL | 1st Occurrence of Preferred Term Flag | text | 200 | |
| AOCCIFL | 1st Max Sev./Int. Occurrence Flag | text | 200 | |
| AOCCPIFL | 1st Max Sev./Int. Occur Within PT Flag | text | 200 | |
| AOCC*FL | text | 200 | ||
| AOCCSFL | 1st Occurrence of SOC Flag | text | 200 | |
| AOCCSIFL | 1st Max Sev./Int. Occur Within SOC Flag | text | 200 | |
| DOSEON | Treatment Dose at Record Start | float | 200 | |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units | text | 200 | |
| AESER | Serious Event | text | 200 | |
| AESEV | Severity/Intensity | text | 200 | |
| AESEVN | Severity/Intensity (N) | integer | 200 | |
| ASEV | Analysis Severity/Intensity | text | 200 | |
| ASEVN | Analysis Severity/Intensity (N) | integer | 200 | |
| SEVGR# | Pooled Severity Group $1 | text | 200 | |
| SEVGR#N | Pooled Severity Group $1 (N) | integer | 200 | |
| AEREL | Causality | text | 200 | |
| AERELN | Causality (N) | float | 200 | |
| AREL | Analysis Causality | text | 200 | |
| ARELN | Analysis Causality (N) | float | 200 | |
| RELGR# | Pooled Causality Group $1 | text | 200 | |
| RELGR#N | Pooled Causality Group $1 (N) | integer | 200 | |
| AETOXGR | Standard Toxicity Grade | text | 200 | |
| AETOXGRN | Standard Toxicity Grade (N) | integer | 200 | |
| ATOXGR | Analysis Toxicity Grade | text | 200 | |
| ATOXGRN | Analysis Toxicity Grade (N) | integer | 200 | |
| TOXGGR# | Pooled Toxicity Grade Group $1 | text | 200 | |
| TOXGGR#N | Pooled Toxicity Grade $1 (N) | integer | 200 | |
| AEACN | Action Taken with Study Treatment | text | 200 | |
| CMSTAT | Completion Status | text | 200 | |
| CMINDC | Indication | text | 200 | |
| CMDOSE | Dose per Administration | float | 200 | |
| CMDOSFRM | Dose Form | text | 200 | |
| CMDOSRGM | Intended Dose Regimen | text | 200 | |
| CMROUTE | Route of Administration | text | 200 | |
| SMQ#NAM | SMQ $1 Name | text | 200 | |
| SMQ#CD | SMQ $1 Code | integer | 200 | |
| SMQ#SC | SMQ $1 Scope | text | 200 | |
| SMQ#SCN | SMQ $1 Scope (N) | integer | 200 | |
| CQ#NAM | Customized Query $1 Name | text | 200 | |
| ADECOD# | Analysis Dictionary-Derived Term $1 | text | 200 | |
| DECDORG# | PT in Original Dictionary $1 | text | 200 | |
| BDSYORG# | SOC in Original Dictionary $1 | text | 200 | |
| HLGTORG# | HLGT in Original Dictionary $1 | text | 200 | |
| HLTORG# | HLT in Original Dictionary $1 | text | 200 | |
| LLTORG# | LLT in Original Dictionary $1 | text | 200 | |
| LLTNORG# | LLT Code in Original Dictionary $1 | text | 200 | |
| CLASORG# | Medication Class in Orig Dictionary $1 | text | 200 | |
| CLCDORG# | Medication Class Code in Orig Dict $1 | text | 200 | |
| ATyCORG# | ATC Level y Code in Orig Dictionary $1 | text | 200 | |
| ATyTORG# | ATC Level y Text in Orig Dictionary $1 | text | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| AVAL | Analysis Value | integer | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| PARAM | Parameter | text | 200 | |
| PARAMCD | Parameter Code | text | 200 | |
| PARAMN | Parameter (N) | integer | 200 | |
| PARAMTYP | Parameter Type | text | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0272 | 1st Occurrence * Flag (AOCC*FL) variable values must be Y or null. | Match | %Variable% flag value is not Y or null |
| AD0273 | For additional Flag (AOCCzzFL) variables representing the 1st Occurrence of an analysis event or datapoint, zz must be nth flag variable (01 to 99). The main purpose of these flags is to facilitate data point traceability between records in the dataset and unique counts in the summary displays. In addition, if a Time to Event (TTE) Analysis dataset is built off of Adverse Events, the flags provide a crucial link between the summary records in the TTE BDS and the source of the records in ADAE. If the producer of the ADAE dataset has standard programs in place to summarize unique counts of events, then they may choose not to create these flags. | Condition | Illegal variable name: zz is not in [01-99] for AOCCzzFL |
| AD0279 | Severity/Intensity (N) (AESEVN) and Analysis Severity/Intensity (N) (ASEVN) variables must have values in [1, 2, 3] when populated. AESEVN can be null. ASEVN cannot be null. | Match | %Variable% value != 1, 2, 3, or null |
| AD0280B | Across studies, all Severity/Intensity (AESEV) variable values must be the same for each unique value of Severity/Intensity (N) (AESEVN) variable when both variables are populated. | Unique | Inconsistent value for AESEV |
| AD0281B | Across studies, all Severity/Intensity (N) (AESEVN) variable must be the same for each unique value of Severity/Intensity (AESEV) variable when both variables are populated. | Unique | Inconsistent value for AESEVN |
| AD0283B | Across studies, all Analysis Severity/Intensity (ASEV) variable values must be the same for each unique value of Analysis Severity/Intensity (N) (ASEVN) variable when both variables are populated. | Unique | Inconsistent value for ASEV |
| AD0284B | Across studies, all Analysis Severity/Intensity (N) (ASEVN) variable values must be the same for each unique value of Analysis Severity/Intensity (ASEV) variable when both variables are populated. | Unique | Inconsistent value for ASEVN |
| AD0287B | Across studies, all Causality (AEREL) variable values must be the same for each unique value of Causality (N) (AERELN) variable when both variables are populated. | Unique | Inconsistent value for AEREL |
| AD0288B | Across studies, all Causality (N) (AERELN) variable values must be the same for each unique value of Causality (AEREL) variable when both variables are populated. | Unique | Inconsistent value for AERELN |
| AD0289B | Across studies, all Analysis Causality (AREL) variable values must be the same for each unique value of Analysis Causality (N) (ARELN) variable when both variables are populated. | Unique | Inconsistent value for AREL |
| AD0290B | Across studies, all Analysis Causality (N) (ARELN) variable values must be the same for each unique value of Analysis Causality (AREL) variable when both variables are populated. | Unique | Inconsistent value for ARELN |
| AD0293B | Across studies, all Standard Toxicity Grade (AETOXGR) variable values must be the same for each unique value of Standard Toxicity Grade (N) (AETOXGRN) variable when both variables are populated. | Unique | Inconsistent value for AETOXGR |
| AD0294B | Across studies, all Standard Toxicity Grade (N) (AETOXGRN) variable values must be the same for each unique value of Standard Toxicity Grade (AETOXGR) variable when both variables are populated. | Unique | Inconsistent value for AETOXGRN |
| AD0295B | Across studies, all Analysis Toxicity Grade (ATOXGR) variable values must be the same for each unique value of Analysis Toxicity Grade (N) (ATOXGRN) variable when both variables are populated. | Unique | Inconsistent value for ATOXGR |
| AD0296B | Across studies, all Analysis Toxicity Grade (N) (ATOXGRN) variable values must be the same for each unique value of Analysis Toxicity Grade (ATOXGR) variable when both variables are populated. | Unique | Inconsistent value for ATOXGRN |
| AD0299 | For Standardized MedDRA Query Variables of Name, Code and Scope(N), zz must be the ordered SMQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for SMQzz(NAM, CD, SC, SCN) |
| AD0303 | For Customized MedDRA Query Name (SMQzzNAM) variables , zz must be the ordered CQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for CQzzNAM |
| AD0304 | If any of SMQ Name (SMQzzNAM), SMQ Code (SMQzzCD) or SMQ Scope (SMQzzSC) variable is populated, then all of these MedDRA SMQ variables must be populated together. | Condition | Only some of these variables are present and populated: SMQ%Variable.1%NAM, SMQ%Variable.1%CD, SMQ%Variable.1%SC |
| AD0310B | Across studies, all SMQ Scope (SMQzzSC ) variable values must be the same for each unique value of SMQ Scope (N) (SMQzzSCN) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SC |
| AD0311B | Across studies, all SMQ Scope (N) (SMQzzSCN) variable values must be the same for each unique value of SMQ Scope (SMQzzSC ) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SCN |
| AD0312 | Standardized MedDRA Query Scope (SMQzzSC) variable value must be BROAD, NARROW, or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SC value != BROAD, NARROW or null |
| AD0313 | Standardized MedDRA Query Scope Numeric (SMQzzSCN) variable value must be 1 (BROAD), 2 (NARROW), or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SCN value != 1, 2 or null |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0364 | Treatment Dose Units (DOSEU) variable is required, Treatment Dose at Record Start (DOSEON) or Cumulative Actual Treatment Dose (DOSCUMA) variable is present in the dataset. | Find | DOSEU variable is not present when DOSEON or DOSCUMA is present |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
ADaM Other
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0092B | Within a study, all TRTPN values must be the same for each unique value of TRTP when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTPN |
| AD0093B | Within a study, all TRTP values must be the same for each unique value of TRTPN when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTP |
| AD0095B | Within a study, all TRTAN values must be the same for each unique value of TRTA when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTAN |
| AD0096B | Within a study, all TRTA values must be the same for each unique value of TRTAN when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTA |
| AD0097 | If Planned Pooled Treatment y (TRTPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTPGyN is present, but TRTPGy is not present |
| AD0098 | Any variable ending in SDY (Start day) must have a value less than or equal to its corresponding EDY (end day) value. | Condition | %Variable.1%SDY is greater than %Variable.1%EDY |
| AD0099 | Any variable ending in STDY (Start day) must have a value less than or equal to its corresponding ENDY (end day) value. | Condition | %Variable.1%STDY is greater than %Variable.1%ENDY |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0109B | Within a study, all AVISITN values must be the same for each unique value group of [PARAMCD, AVISIT] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISITN |
| AD0110B | Within a study, all AVISIT values must be the same for each unique value group of [PARAMCD, AVISITN] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISIT |
| AD0111 | When ARELTM is present, the Anchor Time variable and ARELTMU (Analysis Relative Time unit) must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTM is present, but ARELTMU is not present |
| AD0112 | If ARELTMU (Analysis Relative Time unit) or ARELTM (Analysis Relative Time) is populated, then both must be populated together. | Condition | Only one of these variables is populated: ARELTM, ARELTMU |
| AD0113 | When ARELTM is present, the anchor time variable and ARELTMU must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTMU is present, but ARELTM is not present |
| AD0117B | Within a study, all ATPT values must be the same for each unique value group of [PARAMCD, ATPTN] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPT |
| AD0118B | Within a study, all ATPTN values must be the same for each unique value group of [PARAMCD, ATPT] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPTN |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0137 | When CRITyFL (Analysis Criterion Flag) is populated, it's corresponding parent Analysis Criterion y must be populated. | Condition | CRITyFL is populated, but CRITy is not populated |
| AD0156 | If Criterion y Flag (CRITyFL) variable is present, there must also be a corresponding Criterion y (CRITy) variable. | Find | CRITyFL is present, but CRITy is not present |
| AD0157 | If Criterion y (CRITy) variable is present, there must also be a corresponding Criterion y Flag (CRITyFL) variable. | Find | CRITy is present, but CRITyFL is not present |
| AD0159 | If AWTDIFF (Analysis Window Diff from Target) is populated AWTARGET (Analysis Window Target) must be populated. AWTDIFF = Absolute value of (ADY or ARELTM) - AWTARGET. Note: A future rule should validate that the calculation is correct. Rule enhanced by Pinnacle 21 to include ADY and ARELTM. If only AWTDIFF is present and populated, this rule will fire even if some or all other variables are not present. This may fire simultaneously with AD0158. | Condition | Calculation issue: AWTDIFF is populated, but AWTARGET and/or one of [ADY, ARELTM] are not both present and populated |
| AD0160 | If Analysis Window Unit (AWU) variable is present, then Analysis Window Beginning Timepoint (AWLO) and (Analysis Window Ending Timepoint) AWHI variables must be present. | Find | AWU is present, but both AWLO and AWHI are not present |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0201 | If Actual Pooled Treatment y (TRTAGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTAGyN is present, but TRTAGy is not present |
| AD0212 | ANLzzFN (Analyzed Record Flag zz Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ANL%Variable.1%FN value is not 1 or null |
| AD0237B | Within a study, all Planned Pooled Treatment y (TRTPGy) variable values must be the same for each unique value of Planned Pooled Treatment y (N) (TRTPGyN) variable when both variables are populated. Analogous rule for AD0240. | Unique | Inconsistent value for TRTPG%Variable.1% |
| AD0238B | Within a study, all Planned Pooled Treatment y (N) (TRTPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y (TRTPGy) variable when both variables are populated. Analogous rule for AD0241. | Unique | Inconsistent value for TRTPG%Variable.1%N |
| AD0240B | Within a study, all Actual Pooled Treatment y (TRTAGy) variable values must be the same for each unique value of Actual Pooled Treatment y (N) (TRTAGyN) variable when both variables are populated. Analogous rule for AD0237. | Unique | Inconsistent value for TRTAG%Variable.1% |
| AD0241B | Within a study, all Actual Pooled Treatment y (N) (TRTAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y (TRTAGy) variable when both variables are populated. Analogous rule for AD0238. | Unique | Inconsistent value for TRTAG%Variable.1%N |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0272 | 1st Occurrence * Flag (AOCC*FL) variable values must be Y or null. | Match | %Variable% flag value is not Y or null |
| AD0283B | Across studies, all Analysis Severity/Intensity (ASEV) variable values must be the same for each unique value of Analysis Severity/Intensity (N) (ASEVN) variable when both variables are populated. | Unique | Inconsistent value for ASEV |
| AD0284B | Across studies, all Analysis Severity/Intensity (N) (ASEVN) variable values must be the same for each unique value of Analysis Severity/Intensity (ASEV) variable when both variables are populated. | Unique | Inconsistent value for ASEVN |
| AD0287B | Across studies, all Causality (AEREL) variable values must be the same for each unique value of Causality (N) (AERELN) variable when both variables are populated. | Unique | Inconsistent value for AEREL |
| AD0289B | Across studies, all Analysis Causality (AREL) variable values must be the same for each unique value of Analysis Causality (N) (ARELN) variable when both variables are populated. | Unique | Inconsistent value for AREL |
| AD0290B | Across studies, all Analysis Causality (N) (ARELN) variable values must be the same for each unique value of Analysis Causality (AREL) variable when both variables are populated. | Unique | Inconsistent value for ARELN |
| AD0295B | Across studies, all Analysis Toxicity Grade (ATOXGR) variable values must be the same for each unique value of Analysis Toxicity Grade (N) (ATOXGRN) variable when both variables are populated. | Unique | Inconsistent value for ATOXGR |
| AD0296B | Across studies, all Analysis Toxicity Grade (N) (ATOXGRN) variable values must be the same for each unique value of Analysis Toxicity Grade (ATOXGR) variable when both variables are populated. | Unique | Inconsistent value for ATOXGRN |
| AD0322 | Within a given value of Planned Treatment (TRTP) variable, there can only be one unique value of Planned Pooled Treatment y (TRTPGy) variable. | Unique | Inconsistent value for TRTPGy within a given TRTP |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0337 | If Multi-Response Criterion y Evaluation (MCRITyML) flag variable is present, there must also be a corresponding Analysis Multi-Response Criterion y (MCRITy) variable. | Find | MCRIT%Variable.1% variable is not present when MCRIT%Variable.1%ML is present |
| AD0338 | If Analysis Multi-Response Criterion y (MCRITy) variable is present, there must also be a corresponding Multi-Response Criterion y Evaluation (MCRITyML) flag variable. | Find | MCRIT%Variable.1%ML is not present when MCRIT%Variable.1% is present |
| AD0339 | When Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then its corresponding Analysis Multi-Response Criterion y (MCRITy) variable must be also populated. | Condition | MCRIT%Variable.1% is not populated when MCRIT%Variable.1%ML is populated |
| AD0340 | Within a Study and a Parameter, all Multi-Response Criterion y Evaluation (MCRITyML) variable values must be the same for each unique value of Multi-Response Criterion y Eval (N) (MCRITyMN) variable when variable MCRITyMN is populated. | Unique | Inconsistent value for MCRIT%Variable.1%ML |
| AD0341 | Within a Study and a Parameter, all Multi-Response Criterion y Eval (N) (MCRITyMN) variable values must be the same for each unique value of Multi-Response Criterion y Evaluation (MCRITyML) variable when the primary variable MCRITyML is populated. | Unique | Inconsistent value for MCRIT%Variable.1%MN |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0381 | Within a parameter, there should be only a single value of a primary variable (*) for a given value of secondary variable (*N), considering only those rows on which both variables are populated. Covers variable pairs: BTOXGR/BTOXGRN, BTOXGRL/BTOXGRLN, BTOXGRH/BTOXGRHN, ATOXGRL/ATOXGRLN, ATOXGRH/ATOXGRHN. | Unique | Inconsistent value for %Variable% within a unique PARAMCD |
| AD0382 | Within a parameter, there should be only a single value of Baseline Toxicity Grade (N) (BTOXGRN) variable for a given value of Baseline Toxicity Grade (BTOXGR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRN within a unique PARAMCD |
| AD0384 | Within a parameter, there should be only a single value of Baseline Toxicity Grade Low (N) (BTOXGRLN) variable for a given value of Baseline Toxicity Grade Low (BTOXGRL) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRLN within a unique PARAMCD |
| AD0388 | Within a parameter, there should be only a single value of Baseline Toxicity Grade High (N) (BTOXGRHN) variable for a given value of Baseline Toxicity Grade High (BTOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRHN within a unique PARAMCD |
| AD0396 | Within a parameter, there should be only a single value of ATOXGRLN for a given value of ATOXGRL, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRLN within a unique PARAMCD |
| AD0400 | Within a parameter, there should be only a single value of Analysis Toxicity Grade Low (N) (ATOXGRHN) variable for a given value of Analysis Toxicity Grade Low (ATOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRHN within a unique PARAMCD |
| AD0401 | On a given record, if Analysis Toxicity Description Low (ATOXDSCL) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade Low (ATOXGRL) variable values must be populated. | Condition | AVAL is not populated or ATOXGRL is not populated, and ATOXDSCL is populated |
| AD0402 | On a given record, if Analysis Toxicity Description High (ATOXDSCH) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade High (ATOXGRH) variable values must be populated. | Condition | AVAL is not populated or ATOXGRH is not populated, and ATOXDSCH is populated |
| AD0403 | Within a subject, there should be only a single value of Analysis Toxicity Description Low (ATOXDSCL) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCL within a subject and parameter |
| AD0405 | Within a subject, there should be only a single value of Analysis Toxicity Description High (ATOXDSCH) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCH within a subject and parameter |
| AD0450 | On a given record, if Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then Multi-Response Criterion y Eval (N) (MCRITyMN) variable value must also be populated. | Condition | MCRITyML is populated, but MCRITyMN is not populated |
| AD0451 | On a given record, if Multi-Response Criterion y Eval (N) (MCRITyMN) variable value is populated, then Multi-Response Criterion y Evaluation (MCRITyML) variable value must also be populated. | Condition | MCRITyMN is populated, but MCRITyML is not populated |
| AD0482 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable BCHGCATy is populated, but its secondary variable BCHGCAyN is not populated |
| AD0483 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable BCHGCAyN is populated, but its primary variable BCHGCATy is not populated |
| AD0484 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable PBCHGCAy is populated, but its secondary variable PBCHGCyN is not populated |
| AD0485 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable PBCHGCyN is populated, but its primary variable PBCHGCAy is not populated |
| AD0492 | If Shift $y (SHIFTy) variable is present, the variable pair it is describing should also be present. Pairs include (BASECATy/ AVALCATy), (BNRIND/ANRIND), (ByIND/AyIND), (BTOXGR/ATOXGR), (BTOXGRL/ATOXGRL), (BTOXGRH/ATOXGRH), (BASE/AVAL) and (BASEC/AVALC). | Find | SHIFTy is present and all of the following variable pairs (BASECATy, AVALCATy), (BNRIND, ANRIND), (ByIND, AyIND), (BTOXGR, ATOXGR), (BTOXGRL, ATOXGRL), (BTOXGRH, ATOXGRH), (BASE, AVAL) and (BASEC, AVALC) are not present |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0543 | If Analysis Value Category y (N) (AVALCAyN) variable is used in a dataset, Analysis Value Category y (AVALCATy) variable must also be present in that dataset. | Find | AVALCAyN is present and AVALCATy is not present |
| AD0544 | If Baseline Category y (N) (BASECAyN) variable is used in a dataset, Baseline Category y (BASECATy) variable must also be present in that dataset. | Find | BASECAyN is present and BASECATy is not present |
| AD0545 | If Change from Baseline Category y (N) (CHGCATyN) variable is used in a dataset, Change from Baseline Category y (CHGCATy) variable must also be present in that dataset. | Find | CHGCATyN is present and CHGCATy is not present |
| AD0546 | If Percent Chg from Baseline Category y (N) (PCHGCAyN) variable is used in a dataset, Percent Chg from Baseline Category y (PCHGCATy) variable must also be present in that dataset. | Find | PCHGCAyN is present and PCHGCATy is not present |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0565 | If Change to Baseline Category y (N) (BCHGCAyN) variable is used in a dataset, Change to Baseline Category y (BCHGCATy) variable must also be present in that dataset. | Find | BCHGCAyN is present and BCHGCATy is not present |
| AD0566 | If Percent Change to Baseline Category y (N) (PBCHGCyN) variable is used in a dataset, Percent Change to Baseline Category y (PBCHGCAy) variable must also be present in that dataset. | Find | PBCHGCyN is present and PBCHGCAy is not present |
| AD0582 | When all 3 variables are populated, Change to Baseline (BCHG) must equal Baseline Value (BASE) minus Analysis Value (AVAL). | Condition | Calculation issue: BCHG != BASE - AVAL |
| AD0584 | Within a parameter, there should be only a single value of Change to Baseline Category y (BCHGCATy) variable for a given value of Change to Baseline Category y (N) (BCHGCAyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCATy within a unique PARAMCD |
| AD0585 | Within a parameter, there should be only a single value of Change to Baseline Category y (N) (BCHGCAyN) variable for a given value of Change to Baseline Category y (BCHGCATy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCAyN within a unique PARAMCD |
| AD0586 | When all 3 variables are populated and base <> 0, Percent Change to Baseline (PBCHG) must equal the difference of Baseline Value (BASE) minus Analysis Value (AVAL) divided by the analysis value (AVAL), expressed as a percentage. | Condition | Calculation issue: PBCHG != (BASE - AVAL)/AVAL * 100 |
| AD0588 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (PBCHGCAy) variable for a given value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCAy within a unique PARAMCD |
| AD0589 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable for a given value of Percent Change to Baseline Category y (PBCHGCAy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCyN within a unique PARAMCD |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Device-level Analysis Dataset
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| SPDEVID | Sponsor Device Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| DEVGR# | Pooled Device Group $1 | text | 200 | |
| DEVGR#N | Pooled Device Group $1 (N) | integer | 200 | |
| DEVTYG# | Pooled Device Type Group $1 | text | 200 | |
| DEVTYG#N | Pooled Device Type Group $1 (N) | integer | 200 | |
| MODELG# | Pooled Device Model Group $1 | text | 200 | |
| MODELG#N | Pooled Device Model Group $1 (N) | integer | 200 | |
| SITEID | Study Site Identifier |
|
text | 200 |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age |
|
integer | 200 |
| AGEU | Age Units |
|
text | 200 |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AGEDST | Subject Age at First Exposure to Device | integer | 200 | |
| AGEDSTU | Age at First Exposure to Device Unit | text | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex |
|
text | 200 |
| RACE | Race |
|
text | 200 |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm |
|
text | 200 |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT01P | Planned Treatment for Period 01 |
|
text | 200 |
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| DEVSDT | Date of First Exposure to Device |
|
integer | 200 |
| DEVEDT | Date of Last Exposure to Device |
|
integer | 200 |
| DEVAFL | Device Active Flag | text | 200 | |
| DEVIPDT | Date Device Implanted | integer | 200 | |
| DEVXPDT | Date Device Explanted | integer | 200 | |
| DEVONDT | Date Device Turned On | integer | 200 | |
| DEVOFDT | Date Device Turned Off | integer | 200 | |
| DEVRPDT | Date Device Repositioned | integer | 200 | |
| DEVMDDT | Date Device Modified | integer | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| STRATAR | Strata Used for Randomization | text | 200 | |
| STRATARN | Strata Used for Randomization (N) | float | 200 | |
| STRATAV | Strata from Verification Source | text | 200 | |
| STRATAVN | Strata from Verification Source (N) | float | 200 | |
| STRAT#D | Description of Stratification Factor $1 | text | 200 | |
| STRAT#R | Strat Factor $1 Value Used for Rand | text | 200 | |
| STRAT#RN | Strat Factor $1 Value Used for Rand (N) | float | 200 | |
| STRAT#V | Strat Factor $1 Value from Verif Source | text | 200 | |
| STRAT#VN | Strat Fact $1 Val from Verif Source (N) | float | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0026 | For subject-level numeric population flag variables: 0 = no (not included), 1 = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0053 | The combination of Study Identifier (STUDYID) and Unique Subject Identifier (USUBJID) is not found in the SDTM Demographics domain. There must be traceability between ADaM and SDTM. | Lookup | The combination of STUDYID and USUBJID value does not exist in the SDTM DM domain |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0064 | If Actual Treatment (TRTxxAN) numeric variable is present, there must be a corresponding Actual Treatment (TRTxxA) character variable. | Find | TRTxxAN is present, but TRTxxA is not present |
| AD0066 | If Planned Pooled Treatment y for Period xx (TRxxPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y for Period xx (TRxxPGy) character variable. | Find | TRxxPGyN is present, but TRxxPGy is not present |
| AD0070 | If Actual Pooled Treatment y for Period xx (TRxxAGyN) numeric variable is present, there must be a corresponding Actual Pooled Treatment y for Period xx (TRxxAGy) character variable. | Find | TRxxAGyN is present, but TRxxAGy is not present |
| AD0075 | If the Planned Treatment (TRTxxPN) numeric variable is present, there must be a corresponding Planned Treatment (TRTxxP) character variable. | Find | TRTxxPN is present, but TRTxxP is not present |
| AD0076B | Within a study, all TRTxxPN values must be the same for each unique value of TRTxxP when the primary variable TRTxxP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%PN |
| AD0077B | Within a study, all TRTxxP values must be the same for each unique value of TRTxxPN when the primary variable TRTxxP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%P |
| AD0078 | If Planned Treatment for Period xx (TRTxxP) is present, First Treatment date for period xx (TRxxSDT) must be present if there is more than one Treatment Period. When there is only 1 Treatment Period 01, TRTSDT is sufficient. | Find | TRTxxP is present, but TRxxSDT is not present for periods greater than 01 |
| AD0079 | If Planned Treatment for Period xx (TRTxxP) is present, Last Treatment Date for Period xx (TRxxEDT) must be present if there is more than one Treatment Period. When there is only 1 Treatment Period 01, TRTEDT is sufficient. | Find | TRTxxP is present, but TRxxEDT is not present for periods greater than 01 |
| AD0080 | If Actual Treatment (TRTxxA) is present, its corresponding Planned Treatment (TRTxxP) must be present. | Find | TRTxxA is present, but TRTxxP is not present |
| AD0084 | Date of Last Exposure to Treatment (TRTEDT) for this patient record should be equal to the max Last Treatment Date (TRxxEDT) among all Periods 01 thru xx. | Condition | TRTEDT != Maximum TRxxEDT on this record |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0196 | Unlike SDTM, only some of ADaM Required variables (where Core attribute is 'Req') must be populated. CDISC ADaM rules affirm that PARAM and PARAMCD must be populated, while others are populated as appropriate. Known Exceptions: TRTP, TRTxxP, AGE, AGEU, RACE, SUBJID, AESER. | Required | Required %Variable% value is null |
| AD0227B | Within a study, all Planned Sequence of Treatments (TRTSEQP) variable values must be the same for each unique value of Planned Sequence of Treatments (N) (TRTSEQPN) when both variables are populated. | Unique | Inconsistent value for TRTSEQP |
| AD0228B | Within a study, all Planned Sequence of Treatments (N) (TRTSEQPN) variable values must be the same for each unique value of Planned Sequence of Treatments (TRTSEQP) when both variables are populated. | Unique | Inconsistent value for TRTSEQPN |
| AD0229B | Within a study, all Actual Sequence of Treatment (TRTSEQA) variable values must be the same for each unique value of Actual Sequence of Treatments (N) (TRTSEQAN) when both variables are populated. | Unique | Inconsistent value for TRTSEQA |
| AD0230B | Within a study, all Actual Sequence of Treatments (N) (TRTSEQAN) variable values must be the same for each unique value of Actual Sequence of Treatment (TRTSEQA) variable when both variables are populated. | Unique | Inconsistent value for TRTSEQAN |
| AD0231 | Within a study, all Planned Pooled Treatment y for Period xx (TRxxPGy) variable values must be the same for each unique value of Planned Treatment for Period xx (TRTxxP) variable when TRTxxP is populated. TRxxPGy is a more general pooled treatment for TRTxxP, therefore it may be used for many TRTxxP. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2% within a unique TRT%Variable.1%P |
| AD0232B | Within a study, all Planned Pooled Treatment y for Period xx (TRxxPGy) variable values must be the same for each unique value of Planned Pooled Trt y for Period xx (N) (TRxxPGyN) variable when both variables are populated. Analogous rule for AD0235. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2% |
| AD0233 | Within a study, all Planned Pooled Trt y for Period xx (N) (TRxxPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y for Period xx (TRxxPGy) variable when the primary variable TRxxPGy is populated. analogous rule for AD0236. | Unique | Inconsistent value for TR%Variable.1%PG%Variable.2%N |
| AD0234 | Within a study, all Actual Pooled Treatment y for Period xx (TRxxAGy) variable values must be the same for each unique value of Actual Treatment for Period xx (TRTxxA) when TRTxxA is populated. TRxxAGy is a more general pooled treatment for TRTxxA, therefore it may be used for many TRTxxA. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2% within a unique TRT%Variable.1%A |
| AD0235B | Within a study, all Actual Pooled Treatment y for Period xx (TRxxAGy) variable values must be the same for each unique value of Actual Pooled Trt y for Period xx (N) (TRxxAGyN) variable when both variables are populated. Analogous rule for AD0232. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2% |
| AD0236B | Within a study, all Actual Pooled Trt y for Period xx (N) (TRxxAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y for Period xx (TRxxAGy) variable when both variables are populated. Analogous rule for AD0233. | Unique | Inconsistent value for TR%Variable.1%AG%Variable.2%N |
| AD0239A | For a given period xx, If both Actual Treatment for Period xx (TRTxxA) and Planned Pooled Treatment y for Period xx (TRxxPGy) variables are present, then Actual Pooled Treatment y for Period xx (TRxxAGy) variable must be present. | Find | TRxxPGy and TRTxxA are present, but TRxxAGy is not present |
| AD0242B | Within a study, all Actual Treatment for Period xx (N) (TRTxxAN) variable values must be the same for each unique value of Actual Treatment for Period xx (TRTxxA) variable when both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%AN |
| AD0243B | Within a study, all Actual Treatment for Period xx (TRTxxA) variable values must be the same for each unique value of Actual Treatment for Period xx (N) (TRTxxAN) variable when both variables are populated. | Unique | Inconsistent value for TRT%Variable.1%A |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0320B | The dataset label for a dataset named 'ADDL' must be 'Device-level Analysis Dataset'. | Property | Non-standard dataset label |
| AD0355 | Within a study, all Geographic Region y (REGIONy) variable values must be the same for each unique value of Geographic Region y (N) (REGIONyN) when variable REGIONyN is populated. | Unique | Inconsistent value for REGION%Variable.1% |
| AD0356 | Within a study, all Geographic Region y (N) (REGIONyN) variable values must be the same for each unique value of Geographic Region y (REGIONy) when the primary variable REGIONy is populated. | Unique | Inconsistent value for REGION%Variable.1%N |
| AD0359 | Within a study, Cause of Death (DTHCAUS) variable values must be the same for each unique value of Cause of Death(N) (DTHCAUSN) variable when variable DTHCAUSN is populated. | Unique | Inconsistent value for DTHCAUS |
| AD0360 | Within a study, Cause of Death(N) (DTHCAUSN) variable values must be the same for each unique value of Cause of Death (DTHCAUS) variable when the primary variable DTHCAUS is populated. | Unique | Inconsistent value for DTHCAUSN |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0366 | Date of Randomization (RANDDT) variable should be included into dataset when Randomized Population Flag (RANDFL) variable is present. | Find | Missing RANDDT variable when RANDFL variable is present |
| AD0366A | Date of Randomization (RANDDT) variable value should be populated for randomized subjects (when Randomized Population Flag (RANDFL) variable value is 'Y'). | Required | Missing value for RANDDT when RANDFL is Y |
| AD0366B | Randomized Population Flag (RANDFL) variable value should be 'Y' for randomized subject (when Date of Randomization (RANDDT) variable value is populated). | Condition | RANDFL value is not Y when RANDDT is populated |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0468 | There should be only a single value of Strata Used for Randomization (STRATAR) variable for a given value of Strata Used for Randomization (N) (STRATARN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAR |
| AD0469 | There should be only a single value of Strata Used for Randomization (N) (STRATARN) variable for a given value of Strata Used for Randomization (STRATAR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATARN |
| AD0472 | There should be only a single value of Strat Factor w Value Used for Rand (STRATwR) variable for a given value of Strat Factor w Value Used for Rand (N) (STRATwRN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwR |
| AD0473 | There should be only a single value of Strat Factor w Value Used for Rand (N) (STRATwRN) variable for a given value of Strat Factor w Value Used for Rand (STRATwR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwRN |
| AD0476 | There should be only a single value of Strata from Verification Source (STRATAV) variable for a given value of Strata from Verification Source (N) (STRATAVN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAV |
| AD0477 | There should be only a single value of Strata from Verification Source (N) (STRATAVN) variable for a given value of Strata from Verification Source (STRATAV) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATAVN |
| AD0480 | There should be only a single value of Strat Factor w Value from Verif Source (STRATwV) variable for a given value of Strat Fact w Val from Verif Source (N) (STRATwVN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwV |
| AD0481 | There should be only a single value of Strat Fact w Val from Verif Source (N) (STRATwVN) variable for a given value of Strat Factor w Value from Verif Source (STRATwV) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for STRATwVN |
| AD0570 | If any of the subject-level subperiod timing variables (PxxSw, PxxSwSDT, PxxSwSTM, PxxSwSDM, PxxSwSDF, PxxSwSTF, PxxSwEDT, PxxSwETM, PxxSwEDM, PxxSwEDF, PxxSwETF) are present, there must be a corresponding Planned Treatment for Period xx (TRTxxP) character variable present for the same xx value. | Find | %Variable% is present, but TRT%Variable.1%P is not present |
| AD0616 | There should be only a single value of Treatment Compliance (%) Group y (TRCMPGy) variable for a given value of Treatment Compliance (%) Group y (N) (TRCMPGyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRCMPGy |
| AD0617 | There should be only a single value of Treatment Compliance (%) Group y (N) (TRCMPGyN) variable for a given value of Treatment Compliance (%) Group y (TRCMPGy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRCMPGyN |
| AD0618 | On a given record, if Treatment Compliance (%) Group y (TRCMPGy) variable value is populated, then Treatment Compliance (%) (TRCMP) variable value must be populated. | Condition | TRCMPGy is populated and TRCMP is not populated |
| AD0677 | Within a study, All DEVTYGy values must be the same for each unique value of DEVTYGyN, when both variables are populated. Analogous rule for AD0678. | Unique | Inconsistent value for DEVTYG%Variable.1% |
| AD0678 | Within a study, All DEVTYGyN values must be the same for each unique value of DEVTYGy, when both variables are populated. Analogous rule for AD0677. | Unique | Inconsistent value for DEVTYG%Variable.1%N |
| AD0681 | Within a study, All MODELGy values must be the same for each unique value of MODELGyN, when both variables are populated. Analogous rule for AD0682. | Unique | Inconsistent value for MODELG%Variable.1% |
| AD0682 | Within a study, All MODELGyN values must be the same for each unique value of MODELGy, when both variables are populated. Analogous rule for AD0681. | Unique | Inconsistent value for MODELG%Variable.1%N |
| AD0687 | The value of DEVIPDT (Date Device Implanted) variable must be less or equal to DEVXPDT (Date Device Explanted) | Condition | Value of DEVIPDT is greater than value of DEVXPDT |
| AD0688 | There is more than one record per study for unique values of USUBJID and SPDEVID in the ADDL dataset. | Unique | SPDEVID duplicate values are not allowed within a study and subject |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Adverse Events
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| DOMAIN | Domain Abbreviation |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| AESEQ | Sequence Number |
|
float | 200 |
| AETERM | Reported Term for the Adverse Event |
|
text | 200 |
| AEDECOD | Dictionary-Derived Term |
|
text | 200 |
| AESTDTC | Start Date/Time of Adverse Event | datetime | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0253 | Adverse Events specified in SDTM AE domain must be traceable to ADaM ADAE dataset based on Study Identifier (STUDYID), Unique Subject Identifier (USUBJID) and Sequence Number (AESEQ) variables. The ADAE structure for the standard adverse event safety dataset must have at least one record per each AE recorded in SDTM AE domain. However, subjects not analyzed (e.g., Screen Failures) who have AEs recorded in SDTM AE, but not in ADSL do not need to be included in ADAE. Currently, this check does not take into account the latter. Please check your ADSL file to see if these issues are for Screen Failures. | Lookup | Record key from SDTM AE is not traceable to ADaM ADAE (not enough ADAE recs) |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
Demographics
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| DOMAIN | Domain Abbreviation |
|
text | 200 |
| USUBJID | Unique Subject Identifier |
|
text | 200 |
| SUBJID | Subject Identifier for the Study |
|
text | 200 |
| SITEID | Study Site Identifier |
|
text | 200 |
| SEX | Sex |
|
text | 200 |
| RACE | Race | text | 200 | |
| COUNTRY | Country |
|
text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
Exposure
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| DOMAIN | Domain Abbreviation |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| EXSEQ | Sequence Number |
|
float | 200 |
| EXTRT | Name of Treatment |
|
text | 200 |
| EXSTDTC | Start Date/Time of Treatment | datetime | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
Medical Device Basic Data Structure
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| SPDEVID | Sponsor Device Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| ASEQ | Analysis Sequence Number | float | 200 | |
| TRTP | Planned Treatment | text | 200 | |
| TRTPN | Planned Treatment (N) | float | 200 | |
| TRTA | Actual Treatment | text | 200 | |
| TRTAN | Actual Treatment (N) | float | 200 | |
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTPG# | Planned Pooled Treatment $1 | text | 200 | |
| TRTPG#N | Planned Pooled Treatment $1 (N) | integer | 200 | |
| TRTAG# | Actual Pooled Treatment $1 | text | 200 | |
| TRTAG#N | Actual Pooled Treatment $1 (N) | integer | 200 | |
| DOSEP | Planned Treatment Dose | float | 200 | |
| DOSCUMP | Cumulative Planned Treatment Dose | float | 200 | |
| DOSEA | Actual Treatment Dose | float | 200 | |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units | text | 200 | |
| ADT | Analysis Date | integer | 200 | |
| ATM | Analysis Time | integer | 200 | |
| ADTM | Analysis Datetime | integer | 200 | |
| ADY | Analysis Relative Day | integer | 200 | |
| ADTF | Analysis Date Imputation Flag | text | 200 | |
| ATMF | Analysis Time Imputation Flag | text | 200 | |
| ASTDT | Analysis Start Date | integer | 200 | |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Datetime | integer | 200 | |
| ASTDY | Analysis Start Relative Day | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| AENDT | Analysis End Date | integer | 200 | |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Datetime | integer | 200 | |
| AENDY | Analysis End Relative Day | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| AVISIT | Analysis Visit | text | 200 | |
| AVISITN | Analysis Visit (N) | float | 200 | |
| ATPT | Analysis Timepoint | text | 200 | |
| ATPTN | Analysis Timepoint (N) | integer | 200 | |
| ATPTREF | Analysis Timepoint Reference | text | 200 | |
| APHASE | Phase | text | 200 | |
| APHASEN | Phase (N) | integer | 200 | |
| APERIOD | Period | integer | 200 | |
| APERIODC | Period (C) | text | 200 | |
| ASPER | Subperiod within Period | integer | 200 | |
| ASPERC | Subperiod within Period (C) | text | 200 | |
| ARELTM | Analysis Relative Time | integer | 200 | |
| ARELTMU | Analysis Relative Time Unit | text | 200 | |
| APERSDT | Period Start Date | integer | 200 | |
| APERSTM | Period Start Time | integer | 200 | |
| APERSDTM | Period Start Datetime | integer | 200 | |
| APERSDTF | Period Start Date Imput. Flag | text | 200 | |
| APERSTMF | Period Start Time Imput. Flag | text | 200 | |
| APEREDT | Period End Date | integer | 200 | |
| APERETM | Period End Time | integer | 200 | |
| APEREDTM | Period End Datetime | integer | 200 | |
| APEREDTF | Period End Date Imput. Flag | text | 200 | |
| APERETMF | Period End Time Imput. Flag | text | 200 | |
| ASPRSDT | Subperiod Start Date | integer | 200 | |
| ASPRSTM | Subperiod Start Time | integer | 200 | |
| ASPRSDTM | Subperiod Start Datetime | integer | 200 | |
| ASPRSDTF | Subperiod Start Date Imput. Flag | text | 200 | |
| ASPRSTMF | Subperiod Start Time Imput. Flag | text | 200 | |
| ASPREDT | Subperiod End Date | integer | 200 | |
| ASPRETM | Subperiod End Time | integer | 200 | |
| ASPREDTM | Subperiod End Datetime | integer | 200 | |
| ASPREDTF | Subperiod End Date Imput. Flag | text | 200 | |
| ASPRETMF | Subperiod End Time Imput. Flag | text | 200 | |
| PHSDT | Phase Start Date | integer | 200 | |
| PHSTM | Phase Start Time | integer | 200 | |
| PHSDTM | Phase Start Datetime | integer | 200 | |
| PHSDTF | Phase Start Date Imput. Flag | text | 200 | |
| PHSTMF | Phase Start Time Imput. Flag | text | 200 | |
| PHEDT | Phase End Date | integer | 200 | |
| PHETM | Phase End Time | integer | 200 | |
| PHEDTM | Phase End Datetime | integer | 200 | |
| PHEDTF | Phase End Date Imput. Flag | text | 200 | |
| PHETMF | Phase End Time Imput. Flag | text | 200 | |
| *DT | integer | 200 | ||
| *TM | integer | 200 | ||
| *DTM | integer | 200 | ||
| *ADY | integer | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 | ||
| *SDT | integer | 200 | ||
| *STM | integer | 200 | ||
| *SDTM | integer | 200 | ||
| *SDY | integer | 200 | ||
| *SDTF | text | 200 | ||
| *STMF | text | 200 | ||
| *EDT | integer | 200 | ||
| *ETM | integer | 200 | ||
| *EDTM | integer | 200 | ||
| *EDY | integer | 200 | ||
| *EDTF | text | 200 | ||
| *ETMF | text | 200 | ||
| PARAM | Parameter |
|
text | 200 |
| PARAMCD | Parameter Code |
|
text | 200 |
| PARAMN | Parameter (N) | float | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| AVAL | Analysis Value | float | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| AVALCAT# | Analysis Value Category $1 | text | 200 | |
| AVALCA#N | Analysis Value Category $1 (N) | integer | 200 | |
| BASE | Baseline Value | float | 200 | |
| BASEC | Baseline Value (C) | text | 200 | |
| BASECAT# | Baseline Category $1 | text | 200 | |
| BASECA#N | Baseline Category $1 (N) | integer | 200 | |
| BASETYPE | Baseline Type | text | 200 | |
| CHG | Change from Baseline | float | 200 | |
| CHGCAT# | Change from Baseline Category $1 | text | 200 | |
| CHGCAT#N | Change from Baseline Category $1 (N) | integer | 200 | |
| PCHG | Percent Change from Baseline | float | 200 | |
| PCHGCAT# | Percent Chg from Baseline Category $1 | text | 200 | |
| PCHGCA#N | Percent Chg from Baseline Category $1 (N) | integer | 200 | |
| R2BASE | Ratio to Baseline | float | 200 | |
| R2A#LO | Ratio to Analysis Range $1 Lower Limit | float | 200 | |
| R2A#HI | Ratio to Analysis Range $1 Upper Limit | float | 200 | |
| SHIFT# | Shift $1 | text | 200 | |
| SHIFT#N | Shift $1 (N) | integer | 200 | |
| BCHG | Change to Baseline | float | 200 | |
| BCHGCAT# | Change to Baseline Category $1 | text | 200 | |
| BCHGCA#N | Change to Baseline Category $1 (N) | integer | 200 | |
| PBCHG | Percent Change to Baseline | float | 200 | |
| PBCHGCA# | Percent Change to Baseline Category $1 | text | 200 | |
| PBCHGC#N | Percent Change to Baseline Category $1 (N) | integer | 200 | |
| CRIT# | Analysis Criterion $1 | text | 200 | |
| CRIT#FL | Criterion $1 Evaluation Result Flag | text | 200 | |
| CRIT#FN | Criterion $1 Evaluation Result Flag (N) | integer | 200 | |
| MCRIT# | Analysis Multi-Response Criterion $1 | text | 200 | |
| MCRIT#ML | Multi-Response Criterion $1 Evaluation | text | 200 | |
| MCRIT#MN | Multi-Response Criterion $1 Eval (N) | float | 200 | |
| DTYPE | Derivation Type | text | 200 | |
| AWRANGE | Analysis Window Valid Relative Range | text | 200 | |
| AWTARGET | Analysis Window Target | integer | 200 | |
| AWTDIFF | Analysis Window Diff from Target | integer | 200 | |
| AWLO | Analysis Window Beginning Timepoint | integer | 200 | |
| AWHI | Analysis Window Ending Timepoint | integer | 200 | |
| AWU | Analysis Window Unit | text | 200 | |
| STARTDT | Time-to-Event Origin Date for Subject | integer | 200 | |
| STARTDTM | Time-to-Event Origin Datetime | integer | 200 | |
| STARTDTF | Origin Date Imputation Flag | text | 200 | |
| STARTTMF | Origin Time Imputation Flag | text | 200 | |
| CNSR | Censor | integer | 200 | |
| EVNTDESC | Event or Censoring Description | text | 200 | |
| CNSDTDSC | Censor Date Description | text | 200 | |
| ATOXGR | Analysis Toxicity Grade | text | 200 | |
| ATOXGRN | Analysis Toxicity Grade (N) | float | 200 | |
| BTOXGR | Baseline Toxicity Grade | text | 200 | |
| BTOXGRN | Baseline Toxicity Grade (N) | float | 200 | |
| ANRIND | Analysis Reference Range Indicator | text | 200 | |
| BNRIND | Baseline Reference Range Indicator | text | 200 | |
| ANRLO | Analysis Normal Range Lower Limit | float | 200 | |
| ANRLOC | Analysis Normal Range Lower Limit (C) | text | 200 | |
| ANRHI | Analysis Normal Range Upper Limit | float | 200 | |
| ANRHIC | Analysis Normal Range Upper Limit (C) | text | 200 | |
| A#LO | Analysis Range $1 Lower Limit | float | 200 | |
| A#LOC | Analysis Range $1 Lower Limit (C) | text | 200 | |
| A#HI | Analysis Range $1 Upper Limit | float | 200 | |
| A#HIC | Analysis Range $1 Upper Limit (C) | text | 200 | |
| A#IND | Analysis Range $1 Indicator | text | 200 | |
| B#IND | Baseline Analysis Range $1 Indicator | text | 200 | |
| ATOXGRL | Analysis Toxicity Grade Low | text | 200 | |
| ATOXGRLN | Analysis Toxicity Grade Low (N) | float | 200 | |
| ATOXGRH | Analysis Toxicity Grade High | text | 200 | |
| ATOXGRHN | Analysis Toxicity Grade High (N) | float | 200 | |
| BTOXGRL | Baseline Toxicity Grade Low | text | 200 | |
| BTOXGRLN | Baseline Toxicity Grade Low (N) | float | 200 | |
| BTOXGRH | Baseline Toxicity Grade High | text | 200 | |
| BTOXGRHN | Baseline Toxicity Grade High (N) | float | 200 | |
| ATOXDSCL | Analysis Toxicity Description Low | text | 200 | |
| ATOXDSCH | Analysis Toxicity Description High | text | 200 | |
| ABLFL | Baseline Record Flag | text | 200 | |
| ABLFN | Baseline Record Flag (N) | integer | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| ANL#FN | Analysis Flag $1 (N) | integer | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| ONTRTFN | On Treatment Record Flag (N) | integer | 200 | |
| LVOTFL | Last Value On Treatment Record Flag | text | 200 | |
| LVOTFN | Last Value On Treatment Record Flag (N) | integer | 200 | |
| ITTRFL | Intent-To-Treat Record-Level Flag | text | 200 | |
| ITTRFN | Intent-To-Treat Record-Level Flag (N) | integer | 200 | |
| SAFRFL | Safety Analysis Record-Level Flag | text | 200 | |
| SAFRFN | Safety Analysis Record-Level Flag (N) | integer | 200 | |
| FASRFL | Full Analysis Set Record-Level Flag | text | 200 | |
| FASRFN | Full Analysis Set Record-Level Flag (N) | integer | 200 | |
| PPROTRFL | Per-Protocol Record-Level Flag | text | 200 | |
| PPROTRFN | Per-Protocol Record-Level Flag (N) | integer | 200 | |
| COMPLRFL | Completers Record-Level Flag | text | 200 | |
| COMPRFN | Completers Record-Level Flag (N) | integer | 200 | |
| ITTPFL | Intent-To-Treat Parameter-Level Flag | text | 200 | |
| ITTPFN | Intent-To-Treat Param-Level Flag (N) | integer | 200 | |
| SAFPFL | Safety Analysis Parameter-Level Flag | text | 200 | |
| SAFPFN | Safety Analysis Param-Level Flag (N) | integer | 200 | |
| FASPFL | Full Analysis Set Parameter-Level Flag | text | 200 | |
| FASPFN | Full Analysis Set Param-Level Flag (N) | integer | 200 | |
| PPROTPFL | Per-Protocol Parameter-Level Flag | text | 200 | |
| PPROTPFN | Per-Protocol Parameter-Level Flag (N) | integer | 200 | |
| COMPLPFL | Completers Parameter-Level Flag | text | 200 | |
| COMPLPFN | Completers Parameter-Level Flag (N) | integer | 200 | |
| SRCDOM | Source Data | text | 200 | |
| SRCVAR | Source Variable | text | 200 | |
| SRCSEQ | Source Sequence Number | float | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| * | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0090 | At least 1 treatment variable is required in a BDS dataset. This requirement is satisfied by any of the subject-level (ARM, ACTARM, TRTxxP, TRTxxA, TRTSEQP, TRTSEQA, TRxxPGy, TRxxAGy, TSEQPGy, TSEQAGy) or record-level (TRTP, TRTA, TRTPGy, TRTAGy) treatment variables. One is allowed to use any treatment variable in analysis of BDS. Any subject-level treatment variable may be copied into the BDS dataset from ADSL. | Find | None of the subject-level or record-level treatment variables defined in the IG are present |
| AD0092B | Within a study, all TRTPN values must be the same for each unique value of TRTP when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTPN |
| AD0093B | Within a study, all TRTP values must be the same for each unique value of TRTPN when the primary variable TRTP is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTP |
| AD0095B | Within a study, all TRTAN values must be the same for each unique value of TRTA when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTAN |
| AD0096B | Within a study, all TRTA values must be the same for each unique value of TRTAN when the primary variable TRTA is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for TRTA |
| AD0097 | If Planned Pooled Treatment y (TRTPGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTPGyN is present, but TRTPGy is not present |
| AD0098 | Any variable ending in SDY (Start day) must have a value less than or equal to its corresponding EDY (end day) value. | Condition | %Variable.1%SDY is greater than %Variable.1%EDY |
| AD0099 | Any variable ending in STDY (Start day) must have a value less than or equal to its corresponding ENDY (end day) value. | Condition | %Variable.1%STDY is greater than %Variable.1%ENDY |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0109B | Within a study, all AVISITN values must be the same for each unique value group of [PARAMCD, AVISIT] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISITN |
| AD0110B | Within a study, all AVISIT values must be the same for each unique value group of [PARAMCD, AVISITN] when PARAMCD and primary variable AVISIT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVISIT |
| AD0111 | When ARELTM is present, the Anchor Time variable and ARELTMU (Analysis Relative Time unit) must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTM is present, but ARELTMU is not present |
| AD0112 | If ARELTMU (Analysis Relative Time unit) or ARELTM (Analysis Relative Time) is populated, then both must be populated together. | Condition | Only one of these variables is populated: ARELTM, ARELTMU |
| AD0113 | When ARELTM is present, the anchor time variable and ARELTMU must also be included in the dataset, and the anchor time variable must be identified in the metadata for ARELTM. | Find | ARELTMU is present, but ARELTM is not present |
| AD0117B | Within a study, all ATPT values must be the same for each unique value group of [PARAMCD, ATPTN] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPT |
| AD0118B | Within a study, all ATPTN values must be the same for each unique value group of [PARAMCD, ATPT] when PARAMCD and primary variable ATPT are populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATPTN |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0123 | Within a study, all PARAMTYP values must be the same for each unique value of PARAMCD when PARAMCD is populated. If a PARAMCD is said to be derived, all instances must be derived. More than one parameter can be derived. | Unique | Inconsistent value for PARAMTYP |
| AD0124 | Within a study, all PARCATy values must be the same for each unique value of PARAMCD when PARAMCD is populated. A Parameter can only be categorized once. However, that Category can be used across PARAMs. | Unique | Inconsistent value for PARCAT%Variable.1% within a unique PARAMCD |
| AD0125B | Within a study, all PARCATy values must be the same for each unique value of PARCATyN when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1% |
| AD0126B | Within a study, all PARCATyN values must be the same for each unique value of PARCATy when both variables are populated. | Unique | Inconsistent value for PARCAT%Variable.1%N |
| AD0127A | ABLFL is required if BASE or BASEC is present in the dataset. | Find | BASE or BASEC is present, but ABLFL is not present |
| AD0132 | When all 3 variables are populated and BASE does not equal 0, Ratio to Base (R2BASE) must equal Analysis Value (AVAL) / Baseline Value (BASE). AD0132A will raise errors when BASE equals 0. AD0132B also complements this check. | Condition | Calculation issue: R2BASE != AVAL / BASE |
| AD0132A | When baseline (BASE) equals 0, the Ratio to Baseline (R2BASE) should not be populated since you cannot divide by 0. AD0132 checks the RSBASE calculation is correct when BASE does not equal 0. | Condition | Calculation issue: BASE = 0, but R2BASE is populated |
| AD0132B | If any of CHG (change), PCHG (percent change), or R2BASE (ratio of Analysis Value to Base) is populated, the values necessary for its calculation must both be present and populated. CHG = AVAL - BASE, PCHG = (AVAL - BASE)/BASE * 100, R2BASE = AVAL / BASE. Once this issue is resolved, there is greater potential for rules AD0132, AD0225, AD0223 to fire. | Condition | Calculation issue: CHG, PCHG or R2BASE is populated, but AVAL and/or BASE are not present and populated |
| AD0133 | When all 3 variables are populated and AyLO does not equal 0, Ratio to AyLO (R2AyLO) must equal Analysis Value (AVAL) / Analysis Range y LO Value (AyLO). | Condition | Calculation issue: R2A%Variable.1%LO != AVAL / A%Variable.1%LO |
| AD0133A | R2AyLO = AVAL / AyLO. therefore if R2AyLO is present, both AVAL and AyLO must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%LO is present, but AVAL and/or A%Variable.1%LO is not present |
| AD0133B | If R2AyLO is populated, the values necessary for its calculation must both be present and populated. R2AyLO = AVAL / AyLO. Once this issue is resolved, there is greater potential for AD0133 to fire. | Condition | Calculation issue: R2A%Variable.1%LO is populated, but AVAL and/or A%Variable.1%LO are not populated |
| AD0133C | When Analysis Range Low (AyLO) equals 0, the Ratio to Analysis Range Low (R2AyLO) should not be populated since you cannot divide by 0. AD0133 checks the calculation is correct when AyLO does not equal 0. | Condition | Calculation issue: A%Variable.1%LO = 0, but R2A%Variable.1%LO is populated |
| AD0134 | When all 3 variables are populated and AyHI does not equal 0, Ratio to AyHI (R2AyHI) must equal Analysis Value (AVAL) / Analysis Range y HI Value (AyHI). | Condition | Calculation issue: R2A%Variable.1%HI != AVAL / A%Variable.1%HI |
| AD0134A | R2AyHI = AVAL / AyHI. Therefore, if R2AyHI is present, both AVAL and AyHI must be present for calculation consistency. | Find | Calculation issue: R2A%Variable.1%HI is present, but AVAL and/or A%Variable.1%HI is not present |
| AD0134B | If R2AyHI is populated, the values necessary for its calculation must both be present and populated. R2AyHI = AVAL / AyHI. Once this issue is resolved, there is greater potential for AD0134 to fire. | Condition | Calculation issue: R2A%Variable.1%HI is populated, but AVAL and/or A%Variable.1%HI are not populated |
| AD0134C | When Analysis Range High (AyHI) = 0, the Ratio to Analysis Range High (R2AyHI) should not be populated since you cannot divide by 0. AD0134 checks the calculation is correct when AyLO != '0'. | Condition | Calculation issue: A%Variable.1%HI = 0, but R2A%Variable.1%HI is populated |
| AD0135B | Within a study, all SHIFTy values must be the same for each unique value of SHIFTyN when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1% |
| AD0136B | Within a study, all SHIFTyN values must be the same for each unique value of SHIFTy when PARAMCD, SHIFTy, and SHIFTyN variables are populated. | Unique | Inconsistent value for SHIFT%Variable.1%N |
| AD0137 | When CRITyFL (Analysis Criterion Flag) is populated, it's corresponding parent Analysis Criterion y must be populated. | Condition | CRITyFL is populated, but CRITy is not populated |
| AD0141 | Within a study, All PARAM values must be the same for each unique value of PARAMCD when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAM within a unique PARAMCD |
| AD0142 | Within a study, All PARAMCD values must be the same for each unique value of PARAM when both PARAMCD and PARAM are populated. | Unique | Inconsistent value for PARAMCD within a unique PARAM |
| AD0143 | PARAMCD value must be a max of 8 characters, start with a letter A-Z or underscore, and not contain anything other than letters, numbers, or underscore (_). | Regex | Illegal PARAMCD value |
| AD0146B | Within a study, all PARAM values must be the same for each unique value of PARAMN when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAM |
| AD0147B | Within a study, all PARAMN values must be the same for each unique value of PARAM when both variables PARAM and PARAMN are populated. | Unique | Inconsistent value for PARAMN |
| AD0149B | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVALC values must be the same for each unique value of AVAL creating a one-to-one mapping. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for AVALC |
| AD0150 | Within a study and a given value of PARAMCD when both AVAL and AVALC are populated, then all AVAL values must be the same for each unique value of AVALC creating a one-to-one mapping. | Unique | Inconsistent value for AVAL |
| AD0151 | Within a study, all CRITy values must be the same for each unique value of PARAMCD when PARAMCD and CRITy are populated. Example: PARAMCD = SYSBP (mm Hg), CRIT1 = SYSBP >160. | Unique | Inconsistent value for CRIT%Variable.1% within a unique PARAMCD |
| AD0152 | If the record is flagged as the baseline (ABLFL = Y), then the baseline Value (BASE) must equal the Analysis Value (AVAL). | Condition | ABLFL = Y, but BASE != AVAL |
| AD0156 | If Criterion y Flag (CRITyFL) variable is present, there must also be a corresponding Criterion y (CRITy) variable. | Find | CRITyFL is present, but CRITy is not present |
| AD0157 | If Criterion y (CRITy) variable is present, there must also be a corresponding Criterion y Flag (CRITyFL) variable. | Find | CRITy is present, but CRITyFL is not present |
| AD0159 | If AWTDIFF (Analysis Window Diff from Target) is populated AWTARGET (Analysis Window Target) must be populated. AWTDIFF = Absolute value of (ADY or ARELTM) - AWTARGET. Note: A future rule should validate that the calculation is correct. Rule enhanced by Pinnacle 21 to include ADY and ARELTM. If only AWTDIFF is present and populated, this rule will fire even if some or all other variables are not present. This may fire simultaneously with AD0158. | Condition | Calculation issue: AWTDIFF is populated, but AWTARGET and/or one of [ADY, ARELTM] are not both present and populated |
| AD0160 | If Analysis Window Unit (AWU) variable is present, then Analysis Window Beginning Timepoint (AWLO) and (Analysis Window Ending Timepoint) AWHI variables must be present. | Find | AWU is present, but both AWLO and AWHI are not present |
| AD0163 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ATOXGR is not present |
| AD0164 | If Baseline Toxicity Grade (BTOXGR) variable is present, then Analysis Toxicity Grade (ATOXGR) and Baseline Record Flag (ABLFL) variables must be present. | Find | BTOXGR is present, but ABLFL is not present |
| AD0165 | If the record is flagged as the baseline (ABLFL = Y), then the baseline toxicity grade (BTOXGR) value must equal the analysis toxicity grade (ATOXGR) value. | Condition | ABLFL = Y, but BTOXGR != ATOXGR |
| AD0166 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ANRIND is not present |
| AD0167 | If Baseline Reference Range Indicator (BNRIND) variable is present, then Analysis Reference Range Indicator (ANRIND) and Baseline Record Flag (ABLFL) variables must be present. | Find | BNRIND is present, but ABLFL is not present |
| AD0168 | If the record is flagged as the baseline (ABLFL = Y), then the baseline normal range indicator (BNRIND) value must equal the analysis normal range indicator (ANRIND) value. | Condition | ABLFL = Y, but BNRIND != ANRIND |
| AD0169 | Censor (CNSR) value must be an integer. Defines whether the event was censored (period of observation truncated prior to event being observed). It is strongly recommended to use 0 as an event indicator and positive integers as censoring indicators. It is also recommended that unique positive integers be used to indicate coded descriptions of censoring reasons. CNSR is required for time-to-event parameters. | Regex | CNSR is not an integer >= 0 |
| AD0176 | Analysis Baseline Flag character (ABLFL) must be Y or null. For parameter-level and record-level character population flag variables: Y = yes (included). Null values are allowed. | Match | ABLFL value is not Y or null |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0196 | Unlike SDTM, only some of ADaM Required variables (where Core attribute is 'Req') must be populated. CDISC ADaM rules affirm that PARAM and PARAMCD must be populated, while others are populated as appropriate. Known Exceptions: TRTP, TRTxxP, AGE, AGEU, RACE, SUBJID, AESER. | Required | Required %Variable% value is null |
| AD0198 | At least one Analysis Value (numeric or character) variable must be present in BDS datasets. | Find | Neither AVAL nor AVALC are present in dataset |
| AD0201 | If Actual Pooled Treatment y (TRTAGyN) numeric variable is present, there must be a corresponding Planned Pooled Treatment y (TRTPGy) character variable. | Find | TRTAGyN is present, but TRTAGy is not present |
| AD0211 | ABLFN (Analysis Baseline Flag Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ABLFN value is not 1 or null |
| AD0212 | ANLzzFN (Analyzed Record Flag zz Numeric) must be 1 or null. For Parameter-Level and Record-Level Numeric Population Flag variables: 1 = yes (included). Null values are allowed. | Match | ANL%Variable.1%FN value is not 1 or null |
| AD0221 | Within a study, all Category y (*CATy) variable values must be the same for each unique value of the variable it categorizes within a PARAMCD. [AVAL:AVALCATy], [AVALC:AVALCATy], [BASE:BASECATy], [BASEC:BASECATy], [CHG:CHGCATy], [PCHG:PCHGCATy]. A Category may be the same across values. | Unique | Inconsistent value for %Variable.1%CAT%Variable.2% |
| AD0223 | When all 3 variables are populated, Change from Baseline (CHG) must equal Analysis Value (AVAL) minus Baseline Value (BASE). | Condition | Calculation issue: CHG != AVAL - BASE |
| AD0225 | When all 3 variables are populated and base <> 0, Percent Change from Baseline (PCHG) must equal the difference of Analysis Value (AVAL) minus Baseline Value (BASE) divided by the Baseline Value (BASE), expressed as a percentage. AD0225A will raise errors when BASE = 0. AD0132B also complements this check. | Condition | Calculation issue: PCHG != (AVAL - BASE)/BASE * 100 |
| AD0225A | When Baseline (BASE) equals 0, the Percent Change from Baseline (PCHG) should not be populated since you cannot divide by 0. AD0225 checks the PCHG calculation is correct when BASE does not equal 0. AD0132B also complements this rule. | Condition | Calculation issue: BASE = 0, but PCHG is populated |
| AD0237B | Within a study, all Planned Pooled Treatment y (TRTPGy) variable values must be the same for each unique value of Planned Pooled Treatment y (N) (TRTPGyN) variable when both variables are populated. Analogous rule for AD0240. | Unique | Inconsistent value for TRTPG%Variable.1% |
| AD0238B | Within a study, all Planned Pooled Treatment y (N) (TRTPGyN) variable values must be the same for each unique value of Planned Pooled Treatment y (TRTPGy) variable when both variables are populated. Analogous rule for AD0241. | Unique | Inconsistent value for TRTPG%Variable.1%N |
| AD0239 | If both actual treatment (TRTA) and Planned Pooled Treatment y (TRTPGy) are present, then Actual Pooled Treatment y (TRTAGy) variable must be present. | Find | TRTPGy and TRTA are present, but TRTAGy is not present |
| AD0240B | Within a study, all Actual Pooled Treatment y (TRTAGy) variable values must be the same for each unique value of Actual Pooled Treatment y (N) (TRTAGyN) variable when both variables are populated. Analogous rule for AD0237. | Unique | Inconsistent value for TRTAG%Variable.1% |
| AD0241B | Within a study, all Actual Pooled Treatment y (N) (TRTAGyN) variable values must be the same for each unique value of Actual Pooled Treatment y (TRTAGy) variable when both variables are populated. Analogous rule for AD0238. | Unique | Inconsistent value for TRTAG%Variable.1%N |
| AD0245 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but STARTDT is not present |
| AD0246 | When Censor (CNSR) variable is present, the Time-to-Event Origin Date for Subject (STARTDT) and one of Analysis Date (ADT) or Analysis Datetime (ADTM) variables must be included in the dataset. In Time to Event studies, the basis of analysis is the time from a defined starting point to the time of occurrence of the event of interest. | Find | CNSR is present, but both ADT and ADTM are not present |
| AD0247 | When an event is censored, 3 other variables must be populated. Censor (CNSR) variable qualifies the Analysis Value (AVAL) variable. ADT and ADTM variables are the Analysis Date and Time of event or censoring associated with AVAL. Origin Date for Subject (STARTDT) variable is the original date of risk for the time-to-event analysis. This is generally the time at which a subject is first at risk for the event of interest evaluation. | Condition | CNSR is populated, but AVAL, STARTDT, and one of [ADT, ADTM] are not populated |
| AD0250 | In Time to Event studies, Event or Censoring Description (EVNTDESC) variable is the description of the event of interest or an event that warrants censoring. Therefore, Censor (CNSR) variable should be present. Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, CNSR must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | EVNTDESC and/or CNSDTDSC is present, but CNSR is not present |
| AD0251 | In Time to Event studies, Censor Date Description (CNSDTDSC) variable describes the circumstance represented by the censoring date if different from the event date that warrants censoring. If present, Censor (CNSR) variable must be present. Note that adding CNSDTDSC provides additional information when there is a difference between the event date that warrants censoring and the actual date of censoring. If the event that warrants censoring is the same as the onset date of the event that represents the censoring date, then the CNSDTDSC column is not needed in the analysis dataset. | Find | CNSDTDSC is present, but CNSR is not present |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0322 | Within a given value of Planned Treatment (TRTP) variable, there can only be one unique value of Planned Pooled Treatment y (TRTPGy) variable. | Unique | Inconsistent value for TRTPGy within a given TRTP |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0327 | Within a Study and a Parameter, all Analysis Value Category y (AVALCATy) variable values must be the same for each unique value of Analysis Value Category y (N) (AVALCAyN) variable when the primary variable AVALCAy is populated. | Unique | Inconsistent value for AVALCAT%Variable.1% |
| AD0328 | Within a Study and a Parameter, all Analysis Value Category y (N) (AVALCAyN) variable values must be the same for each unique value of Analysis Value Category y (AVALCATy) variable when the primary variable AVALCATy is populated. | Unique | Inconsistent value for AVALCA%Variable.1%N |
| AD0329 | Within a Study and a Parameter, all Baseline Category y (BASECATy) variable values must be the same for each unique value of Baseline Category y (N) (BASECAyN) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECAT%Variable.1% |
| AD0330 | Within a Study and a Parameter, all Baseline Category y (N) (BASECAyN) variable values must be the same for each unique value of Baseline Category y (BASECATy) variable when the primary variable BASECATy is populated. | Unique | Inconsistent value for BASECA%Variable.1%N |
| AD0331 | Within a Study and a Parameter, all Change from Baseline Category y (CHGCATy) variable values must be the same for each unique value of Change from Baseline Category y (N) (CHGCATyN) variable when variable CHGCATyN is populated. | Unique | Inconsistent value for CHGCAT%Variable.1% |
| AD0332 | Within a Study and a Parameter, all Change from Baseline Category y (N) (CHGCATyN) variable values must be the same for each unique value of Change from Baseline Category y (CHGCATy) variable when the primary variable CHGCATy is populated. | Unique | Inconsistent value for CHGCAT%Variable.1%N |
| AD0333 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (PCHGCATy) variable values must be the same for each unique value of Percent Chg from Baseline Category y (N) (PCHGCAyN) variable when variable PCHGCAyN is populated. | Unique | Inconsistent value for PCHGCAT%Variable.1% |
| AD0334 | Within a Study and a Parameter, all Percent Chg from Baseline Category y (N) (PCHGCAyN) variable values must be the same for each unique value of Percent Chg from Baseline Category y (PCHGCATy) when the primary variable PCHGCATy is populated. | Unique | Inconsistent value for PCHGCA%Variable.1%N |
| AD0337 | If Multi-Response Criterion y Evaluation (MCRITyML) flag variable is present, there must also be a corresponding Analysis Multi-Response Criterion y (MCRITy) variable. | Find | MCRIT%Variable.1% variable is not present when MCRIT%Variable.1%ML is present |
| AD0338 | If Analysis Multi-Response Criterion y (MCRITy) variable is present, there must also be a corresponding Multi-Response Criterion y Evaluation (MCRITyML) flag variable. | Find | MCRIT%Variable.1%ML is not present when MCRIT%Variable.1% is present |
| AD0339 | When Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then its corresponding Analysis Multi-Response Criterion y (MCRITy) variable must be also populated. | Condition | MCRIT%Variable.1% is not populated when MCRIT%Variable.1%ML is populated |
| AD0340 | Within a Study and a Parameter, all Multi-Response Criterion y Evaluation (MCRITyML) variable values must be the same for each unique value of Multi-Response Criterion y Eval (N) (MCRITyMN) variable when variable MCRITyMN is populated. | Unique | Inconsistent value for MCRIT%Variable.1%ML |
| AD0341 | Within a Study and a Parameter, all Multi-Response Criterion y Eval (N) (MCRITyMN) variable values must be the same for each unique value of Multi-Response Criterion y Evaluation (MCRITyML) variable when the primary variable MCRITyML is populated. | Unique | Inconsistent value for MCRIT%Variable.1%MN |
| AD0342 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (ANRLO) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (C) (ANRLOC) variable when variable ANRLOC is populated. | Unique | Inconsistent value for ANRLO |
| AD0343 | Within a Study and a Parameter, all Analysis Normal Range Lower Limit (C) (ANRLOC) variable values must be the same for each unique value of Analysis Normal Range Lower Limit (ANRLO) variable when variable ANRLO is populated. | Unique | Inconsistent value for ANRLOC |
| AD0344 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (ANRHI) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (C) (ANRHIC) variable when variable ANRHIC is populated. | Unique | Inconsistent value for ANRHI |
| AD0345 | Within a Study and a Parameter, all Analysis Normal Range Upper Limit (C) (ANRHIC) variable values must be the same for each unique value of Analysis Normal Range Upper Limit (ANRHI) when variable ANRHI is populated. | Unique | Inconsistent value for ANRHIC |
| AD0346 | If Ratio to Analysis Range y Lower Limit (R2AyLO) flag variable is present, there must also be a corresponding Analysis Range y Lower Limit (AyLO) variable. | Find | A%Variable.1%LO variable is not present when R2A%Variable.1%LO is present |
| AD0347 | Within a Study and a Parameter, all Analysis Range y Lower Limit( AyLO) variable values must be the same for each unique value of Analysis Range y Lower Limit (C) (AyLOC) variable when variable AyLOC is populated. | Unique | Inconsistent value for A%Variable.1%LO |
| AD0348 | Within a Study and a Parameter, all Analysis Range y Lower Limit (C) (AyLOC) variable values must be the same for each unique value of Analysis Range y Lower Limit (AyLO) variable when variable AyLO is populated. | Unique | Inconsistent value for A%Variable.1%LOC |
| AD0349 | If Ratio to Analysis Range y Upper Limit (R2AyHI) variable is present, there must also be a corresponding Analysis Range y Upper Limit (AyHI) variable. | Find | A%Variable.1%HI variable is not present when R2A%Variable.1%HI is present |
| AD0350 | Within a Study and a Parameter, all Analysis Range y Upper Limit (AyHI) variable values must be the same for each unique value of Analysis Range y Upper Limit (C) (AyHIC) variable when variable AyHIC is populated. | Unique | Inconsistent value for A%Variable.1%HI |
| AD0351 | Within a Study and a Parameter, all Analysis Range y Upper Limit (C) (AyHIC) variable values must be the same for each unique value of Analysis Range y Upper Limit (AyHI) variable when variable AyHI is populated. | Unique | Inconsistent value for A%Variable.1%HIC |
| AD0352 | Analysis Range y Indicator (AyIND) variable indicates the relationship of Analysis Value (AVAL) to the analysis range variables Analysis Range y Lower Limit (AyLO) and/or Analysis Range y Upper Limit (AyHI), or the relationship of Analysis Value (C) (AVALC) variable to the analysis range variables Analysis Range y Lower Limit (C) (AyLOC) and/or Analysis Range y Upper Limit (C) AyHIC. At least one of AyLO, AyHI, AyLOC, and AyHIC is expected to be present for use of AyIND variable. | Find | None of A%Variable.1%LO, A%Variable.1%HI, A%Variable.1%LOC, or A%Variable.1%HIC variables is present when A%Variable.1%IND is present |
| AD0353 | If the record is flagged as the Analysis Baseline (ABLFL = Y), then the value of Baseline Analysis Range y Indicator (ByIND) variable must equal the value of Analysis Range y Indicator (AyIND) variable. | Condition | B%Variable.1%IND != A%Variable.1%IND when ABLFL = Y |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0381 | Within a parameter, there should be only a single value of a primary variable (*) for a given value of secondary variable (*N), considering only those rows on which both variables are populated. Covers variable pairs: BTOXGR/BTOXGRN, BTOXGRL/BTOXGRLN, BTOXGRH/BTOXGRHN, ATOXGRL/ATOXGRLN, ATOXGRH/ATOXGRHN. | Unique | Inconsistent value for %Variable% within a unique PARAMCD |
| AD0382 | Within a parameter, there should be only a single value of Baseline Toxicity Grade (N) (BTOXGRN) variable for a given value of Baseline Toxicity Grade (BTOXGR) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRN within a unique PARAMCD |
| AD0384 | Within a parameter, there should be only a single value of Baseline Toxicity Grade Low (N) (BTOXGRLN) variable for a given value of Baseline Toxicity Grade Low (BTOXGRL) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRLN within a unique PARAMCD |
| AD0388 | Within a parameter, there should be only a single value of Baseline Toxicity Grade High (N) (BTOXGRHN) variable for a given value of Baseline Toxicity Grade High (BTOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BTOXGRHN within a unique PARAMCD |
| AD0396 | Within a parameter, there should be only a single value of ATOXGRLN for a given value of ATOXGRL, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRLN within a unique PARAMCD |
| AD0400 | Within a parameter, there should be only a single value of Analysis Toxicity Grade Low (N) (ATOXGRHN) variable for a given value of Analysis Toxicity Grade Low (ATOXGRH) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXGRHN within a unique PARAMCD |
| AD0401 | On a given record, if Analysis Toxicity Description Low (ATOXDSCL) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade Low (ATOXGRL) variable values must be populated. | Condition | AVAL is not populated or ATOXGRL is not populated, and ATOXDSCL is populated |
| AD0402 | On a given record, if Analysis Toxicity Description High (ATOXDSCH) variable value is populated, then both Analysis Value (AVAL) and the Analysis Toxicity Grade High (ATOXGRH) variable values must be populated. | Condition | AVAL is not populated or ATOXGRH is not populated, and ATOXDSCH is populated |
| AD0403 | Within a subject, there should be only a single value of Analysis Toxicity Description Low (ATOXDSCL) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCL within a subject and parameter |
| AD0405 | Within a subject, there should be only a single value of Analysis Toxicity Description High (ATOXDSCH) variable for a given value of Parameter Code (PARAMCD) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for ATOXDSCH within a subject and parameter |
| AD0450 | On a given record, if Multi-Response Criterion y Evaluation (MCRITyML) variable value is populated, then Multi-Response Criterion y Eval (N) (MCRITyMN) variable value must also be populated. | Condition | MCRITyML is populated, but MCRITyMN is not populated |
| AD0451 | On a given record, if Multi-Response Criterion y Eval (N) (MCRITyMN) variable value is populated, then Multi-Response Criterion y Evaluation (MCRITyML) variable value must also be populated. | Condition | MCRITyMN is populated, but MCRITyML is not populated |
| AD0482 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable BCHGCATy is populated, but its secondary variable BCHGCAyN is not populated |
| AD0483 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable BCHGCAyN is populated, but its primary variable BCHGCATy is not populated |
| AD0484 | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable PBCHGCAy is populated, but its secondary variable PBCHGCyN is not populated |
| AD0485 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable PBCHGCyN is populated, but its primary variable PBCHGCAy is not populated |
| AD0492 | If Shift $y (SHIFTy) variable is present, the variable pair it is describing should also be present. Pairs include (BASECATy/ AVALCATy), (BNRIND/ANRIND), (ByIND/AyIND), (BTOXGR/ATOXGR), (BTOXGRL/ATOXGRL), (BTOXGRH/ATOXGRH), (BASE/AVAL) and (BASEC/AVALC). | Find | SHIFTy is present and all of the following variable pairs (BASECATy, AVALCATy), (BNRIND, ANRIND), (ByIND, AyIND), (BTOXGR, ATOXGR), (BTOXGRL, ATOXGRL), (BTOXGRH, ATOXGRH), (BASE, AVAL) and (BASEC, AVALC) are not present |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0543 | If Analysis Value Category y (N) (AVALCAyN) variable is used in a dataset, Analysis Value Category y (AVALCATy) variable must also be present in that dataset. | Find | AVALCAyN is present and AVALCATy is not present |
| AD0544 | If Baseline Category y (N) (BASECAyN) variable is used in a dataset, Baseline Category y (BASECATy) variable must also be present in that dataset. | Find | BASECAyN is present and BASECATy is not present |
| AD0545 | If Change from Baseline Category y (N) (CHGCATyN) variable is used in a dataset, Change from Baseline Category y (CHGCATy) variable must also be present in that dataset. | Find | CHGCATyN is present and CHGCATy is not present |
| AD0546 | If Percent Chg from Baseline Category y (N) (PCHGCAyN) variable is used in a dataset, Percent Chg from Baseline Category y (PCHGCATy) variable must also be present in that dataset. | Find | PCHGCAyN is present and PCHGCATy is not present |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0565 | If Change to Baseline Category y (N) (BCHGCAyN) variable is used in a dataset, Change to Baseline Category y (BCHGCATy) variable must also be present in that dataset. | Find | BCHGCAyN is present and BCHGCATy is not present |
| AD0566 | If Percent Change to Baseline Category y (N) (PBCHGCyN) variable is used in a dataset, Percent Change to Baseline Category y (PBCHGCAy) variable must also be present in that dataset. | Find | PBCHGCyN is present and PBCHGCAy is not present |
| AD0582 | When all 3 variables are populated, Change to Baseline (BCHG) must equal Baseline Value (BASE) minus Analysis Value (AVAL). | Condition | Calculation issue: BCHG != BASE - AVAL |
| AD0584 | Within a parameter, there should be only a single value of Change to Baseline Category y (BCHGCATy) variable for a given value of Change to Baseline Category y (N) (BCHGCAyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCATy within a unique PARAMCD |
| AD0585 | Within a parameter, there should be only a single value of Change to Baseline Category y (N) (BCHGCAyN) variable for a given value of Change to Baseline Category y (BCHGCATy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for BCHGCAyN within a unique PARAMCD |
| AD0586 | When all 3 variables are populated and base <> 0, Percent Change to Baseline (PBCHG) must equal the difference of Baseline Value (BASE) minus Analysis Value (AVAL) divided by the analysis value (AVAL), expressed as a percentage. | Condition | Calculation issue: PBCHG != (BASE - AVAL)/AVAL * 100 |
| AD0588 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (PBCHGCAy) variable for a given value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCAy within a unique PARAMCD |
| AD0589 | Within a parameter, there should be only a single value of Percent Change to Baseline Category y (N) (PBCHGCyN) variable for a given value of Percent Change to Baseline Category y (PBCHGCAy) variable, considering only those rows on which both variables are populated. | Unique | Inconsistent value for PBCHGCyN within a unique PARAMCD |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD0691 | Within a given Subject's SPDEVID and PARAMCD, a baseline value is populated (either BASE or BASEC) and there is not at least one record in that group marked as the baseline (ABLFL = Y). | Find | BASE or BASEC is populated for a unique SPDEVID,USUBJID,PARAMCD but no baseline record exists |
| AD0693 | Within a study, All BASE values must be the same for each unique value group of [SPDEVID,USUBJID,PARAMCD,BASEC] when PARAMCD, BASE and BASEC are populated (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASE |
| AD0694 | Within a study, All BASEC values must be the same for each unique value group of [SPDEVID,USUBJID,PARAMCD,BASE] when PARAMCD, BASE and BASEC are populated. (ADaM IG: There must be a one-to-one map between BASE and BASEC within a given PARAM if BOTH are populated). | Unique | Inconsistent value for BASEC |
| AD0696 | For a set of [Sponsor Device Identifier (SPDEVID), Subject (USUBJID), Parameter (PARAMCD), baseline type (BASETYPE)] only one record can be the actual baseline value, marked by ABLFL = Y. | Unique | Multiple baseline records exist for a unique SPDEVID,USUBJID,PARAMCD,BASETYPE |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| AD1018 | For Analysis Flag zz (ANLzzFL) and Analysis Flag zz (N) (ANLzzFN) variables, 'zz' is an index for the zzth record selection algorithm where 'zz' is must be in [01-99]. Similar to CDISC ADaM Validation Checks No. 299-303. | Condition | Illegal variable name: zz is not in [01-99] for ANLzzFL/FN |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Medical Device Occurrence Data Structure
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| SPDEVID | Sponsor Device Identifier |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| SUBJID | Subject Identifier for the Study | text | 200 | |
| SITEID | Study Site Identifier | text | 200 | |
| *SEQ |
|
float | 200 | |
| DETERM | Reported Term for Device Event |
|
text | 200 |
| DEDECOD | Device Events Dictionary-Derived Term |
|
text | 200 |
| --CAT | Category | text | 200 | |
| --SCAT | Subcategory | text | 200 | |
| ACAT# | Analysis Category $1 | text | 200 | |
| --STDTC | Start Date/Time of Observation | datetime | 200 | |
| ASTDT | Analysis Start Date | integer | 200 | |
| ASTTM | Analysis Start Time | integer | 200 | |
| ASTDTM | Analysis Start Date/Time | integer | 200 | |
| ASTDTF | Analysis Start Date Imputation Flag | text | 200 | |
| ASTTMF | Analysis Start Time Imputation Flag | text | 200 | |
| --ENDTC | End Date/Time of Observation | datetime | 200 | |
| AENDT | Analysis End Date | integer | 200 | |
| AENTM | Analysis End Time | integer | 200 | |
| AENDTM | Analysis End Date/Time | integer | 200 | |
| AENDTF | Analysis End Date Imputation Flag | text | 200 | |
| AENTMF | Analysis End Time Imputation Flag | text | 200 | |
| ASTDY | Analysis Start Relative Day | integer | 200 | |
| --STDY | Study Day of Start of Observation | integer | 200 | |
| AENDY | Analysis End Relative Day | integer | 200 | |
| --ENDY | Study Day of End of Observation | integer | 200 | |
| ADURN | Analysis Duration (N) | float | 200 | |
| ADURU | Analysis Duration Units | text | 200 | |
| --DUR | Duration of XX | datetime | 200 | |
| APERIOD | Period | float | 200 | |
| APERIODC | Period (C) | text | 200 | |
| APHASE | Phase | text | 200 | |
| --OCCUR | XX Occurrence | text | 200 | |
| --PRESP | XX Pre-Specified | text | 200 | |
| ANL#FL | Analysis Flag $1 | text | 200 | |
| TRTEMFL | Treatment Emergent Analysis Flag | text | 200 | |
| AETRTEM | Treatment Emergent Flag | text | 200 | |
| ONTRTFL | On Treatment Record Flag | text | 200 | |
| PREFL | Pre-treatment Flag | text | 200 | |
| FUPFL | Follow-up Flag | text | 200 | |
| AOCCFL | 1st Occurrence within Subject Flag | text | 200 | |
| AOCCPFL | 1st Occurrence of Preferred Term Flag | text | 200 | |
| AOCCIFL | 1st Max Sev./Int. Occurrence Flag | text | 200 | |
| AOCCPIFL | 1st Max Sev./Int. Occur Within PT Flag | text | 200 | |
| AOCC*FL | text | 200 | ||
| AOCCSFL | 1st Occurrence of SOC Flag | text | 200 | |
| AOCCSIFL | 1st Max Sev./Int. Occur Within SOC Flag | text | 200 | |
| DOSEON | Treatment Dose at Record Start | float | 200 | |
| DOSCUMA | Cumulative Actual Treatment Dose | float | 200 | |
| DOSEU | Treatment Dose Units | text | 200 | |
| ASEV | Analysis Severity/Intensity | text | 200 | |
| ASEVN | Analysis Severity/Intensity (N) | integer | 200 | |
| SEVGR# | Pooled Severity Group $1 | text | 200 | |
| SEVGR#N | Pooled Severity Group $1 (N) | integer | 200 | |
| SITEGR# | Pooled Site Group $1 | text | 200 | |
| SITEGR#N | Pooled Site Group $1 (N) | integer | 200 | |
| REGION# | Geographic Region $1 | text | 200 | |
| REGION#N | Geographic Region $1 (N) | integer | 200 | |
| AGE | Age | integer | 200 | |
| AGEU | Age Units | text | 200 | |
| AGEGR# | Pooled Age Group $1 | text | 200 | |
| AGEGR#N | Pooled Age Group $1 (N) | integer | 200 | |
| AAGE | Analysis Age | float | 200 | |
| SEX | Sex | text | 200 | |
| RACE | Race | text | 200 | |
| RACEGR# | Pooled Race Group $1 | text | 200 | |
| RACEGR#N | Pooled Race Group $1 (N) | integer | 200 | |
| FASFL | Full Analysis Set Population Flag | text | 200 | |
| FASFN | Full Analysis Set Population Flag (N) | integer | 200 | |
| SAFFL | Safety Population Flag | text | 200 | |
| SAFFN | Safety Population Flag (N) | integer | 200 | |
| ITTFL | Intent-To-Treat Population Flag | text | 200 | |
| ITTFN | Intent-To-Treat Population Flag (N) | integer | 200 | |
| PPROTFL | Per-Protocol Population Flag | text | 200 | |
| PPROTFN | Per-Protocol Population Flag (N) | integer | 200 | |
| COMPLFL | Completers Population Flag | text | 200 | |
| COMPLFN | Completers Population Flag (N) | integer | 200 | |
| RANDFL | Randomized Population Flag | text | 200 | |
| RANDFN | Randomized Population Flag (N) | integer | 200 | |
| ENRLFL | Enrolled Population Flag | text | 200 | |
| ENRLFN | Enrolled Population Flag (N) | integer | 200 | |
| ARM | Description of Planned Arm | text | 200 | |
| ACTARM | Description of Actual Arm | text | 200 | |
| *FL | text | 200 | ||
| TRT#P | Planned Treatment for Period $1 | text | 200 | |
| TRT#PN | Planned Treatment for Period $1 (N) | integer | 200 | |
| TRT#A | Actual Treatment for Period $1 | text | 200 | |
| TRT#AN | Actual Treatment for Period $1 (N) | integer | 200 | |
| TRTSEQP | Planned Sequence of Treatments | text | 200 | |
| TRTSEQPN | Planned Sequence of Treatments (N) | integer | 200 | |
| TRTSEQA | Actual Sequence of Treatments | text | 200 | |
| TRTSEQAN | Actual Sequence of Treatments (N) | integer | 200 | |
| TR#PG# | Planned Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#PG#N | Planned Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TR#AG# | Actual Pooled Treatment $2 for Period $1 | text | 200 | |
| TR#AG#N | Actual Pooled Trt $2 for Period $1 (N) | integer | 200 | |
| TSEQPG# | Planned Pooled Treatment Sequence $1 | text | 200 | |
| TSEQPG#N | Planned Pooled Treatment Sequence $1 (N) | integer | 200 | |
| TSEQAG# | Actual Pooled Treatment Sequence $1 | text | 200 | |
| TSEQAG#N | Actual Pooled Treatment Sequence $1 (N) | integer | 200 | |
| DOSE#P | Planned Treatment Dose for Period $1 | float | 200 | |
| DOSE#A | Actual Treatment Dose for Period $1 | float | 200 | |
| DOSE#U | Units for Dose for Period $1 | text | 200 | |
| TRTSDT | Date of First Exposure to Treatment | integer | 200 | |
| TRTSTM | Time of First Exposure to Treatment | integer | 200 | |
| TRTSDTM | Datetime of First Exposure to Treatment | integer | 200 | |
| TRTSDTF | Date of First Exposure Imput. Flag | text | 200 | |
| TRTSTMF | Time of First Exposure Imput. Flag | text | 200 | |
| TRTEDT | Date of Last Exposure to Treatment | integer | 200 | |
| TRTETM | Time of Last Exposure to Treatment | integer | 200 | |
| TRTEDTM | Datetime of Last Exposure to Treatment | integer | 200 | |
| TRTEDTF | Date of Last Exposure Imput. Flag | text | 200 | |
| TRTETMF | Time of Last Exposure Imput. Flag | text | 200 | |
| TR#SDT | Date of First Exposure in Period $1 | integer | 200 | |
| TR#STM | Time of First Exposure in Period $1 | integer | 200 | |
| TR#SDTM | Datetime of First Exposure in Period $1 | integer | 200 | |
| TR#SDTF | Date 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#STMF | Time 1st Exposure Period $1 Imput. Flag | text | 200 | |
| TR#EDT | Date of Last Exposure in Period $1 | integer | 200 | |
| TR#ETM | Time of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTM | Datetime of Last Exposure in Period $1 | integer | 200 | |
| TR#EDTF | Date Last Exposure Period $1 Imput. Flag | text | 200 | |
| TR#ETMF | Time Last Exposure Period $1 Imput. Flag | text | 200 | |
| AP#SDT | Period $1 Start Date | integer | 200 | |
| AP#STM | Period $1 Start Time | integer | 200 | |
| AP#SDTM | Period $1 Start Datetime | integer | 200 | |
| AP#SDTF | Period $1 Start Date Imput. Flag | text | 200 | |
| AP#STMF | Period $1 Start Time Imput. Flag | text | 200 | |
| AP#EDT | Period $1 End Date | integer | 200 | |
| AP#ETM | Period $1 End Time | integer | 200 | |
| AP#EDTM | Period $1 End Datetime | integer | 200 | |
| AP#EDTF | Period $1 End Date Imput. Flag | text | 200 | |
| AP#ETMF | Period $1 End Time Imput. Flag | text | 200 | |
| P#S# | Description of Period $1 Subperiod $2 | text | 200 | |
| P#S#SDT | Period $1 Subperiod $2 Start Date | integer | 200 | |
| P#S#STM | Period $1 Subperiod $2 Start Time | integer | 200 | |
| P#S#SDM | Period $1 Subperiod $2 Start Datetime | integer | 200 | |
| P#S#SDF | Period $1 Subper $2 Start Date Imput Flag | text | 200 | |
| P#S#STF | Period $1 Subper $2 Start Time Imput Flag | text | 200 | |
| P#S#EDT | Period $1 Subperiod $2 End Date | integer | 200 | |
| P#S#ETM | Period $1 Subperiod $2 End Time | integer | 200 | |
| P#S#EDM | Period $1 Subperiod $2 End Datetime | integer | 200 | |
| P#S#EDF | Period $1 Subper $2 End Date Imput Flag | text | 200 | |
| P#S#ETF | Period $1 Subper $2 End Time Imput Flag | text | 200 | |
| APHASE# | Description of Phase $1 | text | 200 | |
| PH#SDT | Phase $1 Start Date | integer | 200 | |
| PH#STM | Phase $1 Start Time | integer | 200 | |
| PH#SDTM | Phase $1 Start Datetime | integer | 200 | |
| PH#SDTF | Phase $1 Start Date Imputation Flag | text | 200 | |
| PH#STMF | Phase $1 Start Time Imputation Flag | text | 200 | |
| PH#EDT | Phase $1 End Date | integer | 200 | |
| PH#ETM | Phase $1 End Time | integer | 200 | |
| PH#EDTM | Phase $1 End Datetime | integer | 200 | |
| PH#EDTF | Phase $1 End Date Imputation Flag | text | 200 | |
| PH#ETMF | Phase $1 End Time Imputation Flag | text | 200 | |
| EOSSTT | End of Study Status | text | 200 | |
| EOSDT | End of Study Date | integer | 200 | |
| DCSREAS | Reason for Discontinuation from Study | text | 200 | |
| DCSREASP | Reason Spec for Discont from Study | text | 200 | |
| EOTSTT | End of Treatment Status | text | 200 | |
| DCTREAS | Reason for Discontinuation of Treatment | text | 200 | |
| DCTREASP | Reason Specify for Discont of Treatment | text | 200 | |
| EOT#STT | End of Treatment Status in Period $1 | text | 200 | |
| DCT#RS | Reason for Discont of Treat in Period $1 | text | 200 | |
| DCT#RSP | Reason Spec for Disc of Trt in Period $1 | text | 200 | |
| EOP#STT | End of Period $1 Status | text | 200 | |
| DCP#RS | Reason for Discont from Period $1 | text | 200 | |
| DCP#RSP | Reason Spec for Discont from Period $1 | text | 200 | |
| RFICDT | Date of Informed Consent | integer | 200 | |
| ENRLDT | Date of Enrollment | integer | 200 | |
| RANDDT | Date of Randomization | integer | 200 | |
| RFIC#DT | Date of Informed Consent $1 | integer | 200 | |
| ENRL#DT | Date of Enrollment $1 | integer | 200 | |
| RAND#DT | Date of Randomization $1 | integer | 200 | |
| LSTALVDT | Date Last Known Alive | integer | 200 | |
| TRCMP | Treatment Compliance (%) | float | 200 | |
| TRCMPG# | Treatment Compliance (%) Group $1 | text | 200 | |
| TRCMPG#N | Treatment Compliance (%) Group $1 (N) | integer | 200 | |
| TR#DURD | Treatment Duration in Period $1 (Days) | integer | 200 | |
| TR#DURM | Treatment Duration in Period $1 (Months) | integer | 200 | |
| TR#DURY | Treatment Duration in Period $1 (Years) | integer | 200 | |
| TRTDURD | Total Treatment Duration (Days) | integer | 200 | |
| TRTDURM | Total Treatment Duration (Months) | integer | 200 | |
| TRTDURY | Total Treatment Duration (Years) | integer | 200 | |
| DTHDT | Date of Death | integer | 200 | |
| DTHDTF | Date of Death Imputation Flag | text | 200 | |
| DTHCAUS | Cause of Death | text | 200 | |
| DTHCAUSN | Cause of Death (N) | integer | 200 | |
| DTHCGR# | Cause of Death Group $1 | text | 200 | |
| DTHCGR#N | Cause of Death Group $1 (N) | integer | 200 | |
| AVAL | Analysis Value | integer | 200 | |
| AVALC | Analysis Value (C) | text | 200 | |
| PARAM | Parameter | text | 200 | |
| PARAMCD | Parameter Code | text | 200 | |
| PARAMN | Parameter (N) | integer | 200 | |
| PARAMTYP | Parameter Type | text | 200 | |
| PARCAT# | Parameter Category $1 | text | 200 | |
| PARCAT#N | Parameter Category $1 (N) | integer | 200 | |
| * | text | 200 | ||
| *DTF | text | 200 | ||
| *TMF | text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| AD0005B | A variable with a suffix of FL must have value that is Y, N or null (Exception 1: ABLFL, ANLzzFL. Exception 2: Population flags COMPLFL, FASFL, ITTFL, PPROTFL, SAFFL, RANDFL, ENRLFL cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FL value is not Y, N or null |
| AD0006B | A variable with a suffix of FN has a value that is not 0, 1, or null (Exception: ABLFN, ANLzzFN, and numeric population flags COMPLFN, FASFN, ITTFN, PPROTFN, SAFFN, RANDFN, ENRLFN cannot be null and at least 1 must be included in ADSL). | Match | %Variable.1%FN value is not 0, 1 or null |
| AD0007 | If a Flag Numeric (*FN) variable is present, its corresponding Flag Character (*FL) variable must be present. | Find | Secondary variable *FN is present, but its primary variable *FL is not present |
| AD0010 | When a Flag variable (FL) is Y, its corresponding Flag numeric variable (FN) must be 1. | Condition | %Variable.1%FL = Y and %Variable.1%FN != 1 |
| AD0011 | When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0. | Condition | %Variable.1%FL = N and %Variable.1%FN != 0 |
| AD0012 | When a numeric Flag variable (*FN) is populated, its corresponding character Flag variable (*FL) must be populated. | Condition | Secondary variable %Variable.1%FN is populated, but its primary variable %Variable.1%FL is not populated |
| AD0013 | A variable must be a max of 8 characters, start with a letter A-Z and does not contain anything other than letters, numbers, underscore (_). | Regex | Illegal variable name: basic format is violated |
| AD0016 | All ADaM variable labels must be no more than 40 characters in length. This should not be possible to fail with sas v5 xpt. Dataset-XML or .csv can fail this rule. | Regex | Variable label length is greater than 40 characters |
| AD0018 | The variable label in the dataset should match the variable label described in ADaM. When creating a new variable, labels can be adjusted as appropriate. Currently, this rule runs if a variable has a label that is defined in the ADaM metadata. | Condition | Variable label mismatch between dataset and ADaM standard |
| AD0019 | For subject-level character population flag variables: N = no (not included), Y = yes (included). Null values are not allowed. | Required | %Variable% subject-population flag value is null |
| AD0037B | Within a study, all *GRyN values must be the same for each unique value of *GRy when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2%N |
| AD0038B | Within a study, all *GRy values must be the same for each unique value of *GRyN when the primary variable *GRy is populated. ADaM IG v1.1 p.15 general variable naming conventions #10: If any combining of the SDTM character categories is done, the name of the derived ADaM character grouping variable should end in GRy and the name of its numeric equivalent should end in GRyN where y is an integer from 1-9 representing a grouping scheme. CDISC created 3 new explicit rules for ADAE which were already covered by this general rule. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for %Variable.1%GR%Variable.2% |
| AD0041 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DA, B8601DN , DATE, DAY, DDMMYY, DDMMYYB, DDMMYYC, DDMMYYD, DDMMYYN, DDMMYYP, DDMMYYS, DOWNAME, DTMONYY, E8601DA, JULDAY, JULIAN, MMDDYY, MMDDYYB, MMDDYYC, MMDDYYD, MMDDYYN, MMDDYYP, MMDDYYS, MMYY, MMYYB, MMYYC, MMYYD, MMYYN, MMYYP, MMYYS, MONNAME, MONTH, MONYY, PDJULG, PDJULI, QTR, QTRR, WEEKDATE, WEEKDATX, WEEKDAY, WEEKU, WEEKV, WEEKW, WORDDATE, WORDDATX, YEAR, YYMM, YYMMDD, YYMMDDB, YYMMDDC, YYMMDDD, YYMMDDN, YYMMDDP, YYMMDDS, YYMMB, YYMMC, YYMMD, YYMMN, YYMMP, YYMMS, YYMON, YYQ, YYQB, YYQC, YYQD, YYQN, YYQP, YYQS, YYQR, YYQRB, YYQRC, YYQRD, YYQRN, YYQRP, YYQRS, IS8601DA. | Match | *DT does not have the ADaM required SAS Date format |
| AD0041A | *DT variables must have non-missing SAS Date Format. | Required | *DT variable has missing SAS Date Format |
| AD0042 | The SAS format listed in the dataset must be valid. Here is a list of SAS Time formats utilized in the rule algorithm: B8601LZ, B8601TM, B8601TZ, E8601LZ, E8601TM, E8601TZ, HHMM, HOUR, MMSS, TIME, TIMEAMPM, IS8601TM, IS8601TZ, TOD. | Match | *TM does not have the ADaM required SAS time format |
| AD0042A | *TM variables must have non-missing SAS Time Format. | Required | *TM variable has missing SAS Time Format |
| AD0043 | The SAS format listed in the dataset must be valid. Here is a list of SAS Date formats utilized in the rule algorithm: B8601DT, B8601DZ, DATEAMPM, DATETIME, DTDATE, DTWKDATX, DTYEAR, DTYYQC, E8601DN, E8601DT, E8601DZ, MDYAMPM, TOD, IS8601DN, IS8601DT, IS8601DZ. | Match | *DTM does not have the ADaM required SAS Datetime format |
| AD0043A | *DTM variables must have non-missing SAS Datetime Format. | Required | *DTM variable has missing SAS Datetime Format |
| AD0044 | When both time and datetime variables are collected on the same record for the same observation, the Time portion of the datetime variable should be equal to the Time variable itself. | Condition | %Variable.1%TM and its corresponding %Variable.1%DTM variable have different time values |
| AD0045 | When both date and datetime variables are collected on the same record for the same observation, the Date portion of the datetime variable should be equal to the Date variable itself. | Condition | %Variable.1%DT and its corresponding %Variable.1%DTM variable have different date values |
| AD0046 | A variable with a suffix of DY (day) must not equal zero. Variables whose names end in DY are relative day variables. In ADaM as in the SDTM, there is no day 0. If there is a need to create a relative day variable that includes day 0, then its name must not end in DY. | Regex | %Variable.1%DY = 0 |
| AD0047 | Variables described in ADaM as Required must be included in the dataset. | Find | Required variable is not present |
| AD0058 | The SAS TYPE for *DT variable must be equal Num. | Match | *DT is not a numeric variable |
| AD0059 | The SAS TYPE for *TM variable must be equal Num. | Match | *TM is not a numeric variable |
| AD0060 | The SAS TYPE for *DTM variable must be equal Num. | Match | *DTM is not a numeric variable |
| AD0102 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Planned Treatment for Period xx variable (like TRT01P) in ADSL dataset. | Metadata | There is no TRTxxP variable in ADSL for every unique xx value of APERIOD |
| AD0103 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of First Exposure in Period xx variable for this period (like TR01SDT) in ADSL dataset. | Metadata | There is no TRxxSDT variable in ADSL for every unique xx value of APERIOD |
| AD0104 | The Analysis Period (APERIOD) values will be a number like 01. There must be a corresponding Date of Last Exposure in Period xx variable for this period (like TR01EDT) in ADSL dataset. | Metadata | There is no TRxxEDT variable in ADSL for every unique xx value of APERIOD |
| AD0105B | Within a study, all APERIODC values must be the same for each unique value of APERIOD when the primary variable APERIOD is populated. | Unique | Inconsistent value for APERIODC |
| AD0106B | Within a study, all APERIOD values must be the same for each unique value of APERIODC when the primary variable APERIOD is populated. Considering only those rows on which both variables are populated. | Unique | Inconsistent value for APERIOD |
| AD0121 | Any variable ending in SDT (Start Date) must have a value less than or equal to its corresponding EDT (End Date) value (e.g., ADSL - TRTSDT, TR01SDT, AP01SDT; BDS - APERSDT). | Condition | %Variable.1%SDT is greater than %Variable.1%EDT |
| AD0122 | Any variable ending in SDTM (Start Date Time) must have a value less than or equal to its corresponding EDTM (End Date Time) value (e.g., ADSL - TRTSDTM, TR01SDTM, AP01SDTM; BDS - APERSDTM). | Condition | %Variable.1%SDTM is greater than %Variable.1%EDTM |
| AD0178 | A variable of form ANLzzFL (analysis record flag) must be Y or null. | Match | ANL%Variable.1%FL value is not Y or null |
| AD0252 | Variables described in ADaM IG as inappropriate for usage must be not included in the dataset. i.e., for ADAE, there is no need for AVAL, AVALC and Parameter variables. | Find | Variable present in dataset is prohibited for use in ADaM |
| AD0256 | All subjects included into ADaM datasets should be present in ADSL dataset and use the same Unique Subject Identifier (USUBJID). | Lookup | USUBJID value does not exist in the ADaM ADSL domain |
| AD0269 | A Treatment Flag variable must have a value that is Y or null. Examples of such Flags variables in ADaM-IG 1.2 are Treatment Emergent Analysis Flag (TRTEMFL), Pre-treatment Flag (PREFL), On Treatment Record Flag (ONTRTFL), Follow-up Flag (FUPFL), and Last Value On Treatment Record Flag (LVOTFL). | Match | %Variable% flag value is not Y or null |
| AD0272 | 1st Occurrence * Flag (AOCC*FL) variable values must be Y or null. | Match | %Variable% flag value is not Y or null |
| AD0273 | For additional Flag (AOCCzzFL) variables representing the 1st Occurrence of an analysis event or datapoint, zz must be nth flag variable (01 to 99). The main purpose of these flags is to facilitate data point traceability between records in the dataset and unique counts in the summary displays. In addition, if a Time to Event (TTE) Analysis dataset is built off of Adverse Events, the flags provide a crucial link between the summary records in the TTE BDS and the source of the records in ADAE. If the producer of the ADAE dataset has standard programs in place to summarize unique counts of events, then they may choose not to create these flags. | Condition | Illegal variable name: zz is not in [01-99] for AOCCzzFL |
| AD0279 | Severity/Intensity (N) (AESEVN) and Analysis Severity/Intensity (N) (ASEVN) variables must have values in [1, 2, 3] when populated. AESEVN can be null. ASEVN cannot be null. | Match | %Variable% value != 1, 2, 3, or null |
| AD0280B | Across studies, all Severity/Intensity (AESEV) variable values must be the same for each unique value of Severity/Intensity (N) (AESEVN) variable when both variables are populated. | Unique | Inconsistent value for AESEV |
| AD0281B | Across studies, all Severity/Intensity (N) (AESEVN) variable must be the same for each unique value of Severity/Intensity (AESEV) variable when both variables are populated. | Unique | Inconsistent value for AESEVN |
| AD0283B | Across studies, all Analysis Severity/Intensity (ASEV) variable values must be the same for each unique value of Analysis Severity/Intensity (N) (ASEVN) variable when both variables are populated. | Unique | Inconsistent value for ASEV |
| AD0284B | Across studies, all Analysis Severity/Intensity (N) (ASEVN) variable values must be the same for each unique value of Analysis Severity/Intensity (ASEV) variable when both variables are populated. | Unique | Inconsistent value for ASEVN |
| AD0287B | Across studies, all Causality (AEREL) variable values must be the same for each unique value of Causality (N) (AERELN) variable when both variables are populated. | Unique | Inconsistent value for AEREL |
| AD0288B | Across studies, all Causality (N) (AERELN) variable values must be the same for each unique value of Causality (AEREL) variable when both variables are populated. | Unique | Inconsistent value for AERELN |
| AD0289B | Across studies, all Analysis Causality (AREL) variable values must be the same for each unique value of Analysis Causality (N) (ARELN) variable when both variables are populated. | Unique | Inconsistent value for AREL |
| AD0290B | Across studies, all Analysis Causality (N) (ARELN) variable values must be the same for each unique value of Analysis Causality (AREL) variable when both variables are populated. | Unique | Inconsistent value for ARELN |
| AD0293B | Across studies, all Standard Toxicity Grade (AETOXGR) variable values must be the same for each unique value of Standard Toxicity Grade (N) (AETOXGRN) variable when both variables are populated. | Unique | Inconsistent value for AETOXGR |
| AD0294B | Across studies, all Standard Toxicity Grade (N) (AETOXGRN) variable values must be the same for each unique value of Standard Toxicity Grade (AETOXGR) variable when both variables are populated. | Unique | Inconsistent value for AETOXGRN |
| AD0295B | Across studies, all Analysis Toxicity Grade (ATOXGR) variable values must be the same for each unique value of Analysis Toxicity Grade (N) (ATOXGRN) variable when both variables are populated. | Unique | Inconsistent value for ATOXGR |
| AD0296B | Across studies, all Analysis Toxicity Grade (N) (ATOXGRN) variable values must be the same for each unique value of Analysis Toxicity Grade (ATOXGR) variable when both variables are populated. | Unique | Inconsistent value for ATOXGRN |
| AD0299 | For Standardized MedDRA Query Variables of Name, Code and Scope(N), zz must be the ordered SMQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for SMQzz(NAM, CD, SC, SCN) |
| AD0303 | For Customized MedDRA Query Name (SMQzzNAM) variables , zz must be the ordered CQ of interest (01 to 99). This ordering can be based on importance or some other sponsor-defined criteria. It is recommended that the ordering be consistent across studies within a development program. | Condition | Illegal variable name: zz is not in [01-99] for CQzzNAM |
| AD0304 | If any of SMQ Name (SMQzzNAM), SMQ Code (SMQzzCD) or SMQ Scope (SMQzzSC) variable is populated, then all of these MedDRA SMQ variables must be populated together. | Condition | Only some of these variables are present and populated: SMQ%Variable.1%NAM, SMQ%Variable.1%CD, SMQ%Variable.1%SC |
| AD0310B | Across studies, all SMQ Scope (SMQzzSC ) variable values must be the same for each unique value of SMQ Scope (N) (SMQzzSCN) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SC |
| AD0311B | Across studies, all SMQ Scope (N) (SMQzzSCN) variable values must be the same for each unique value of SMQ Scope (SMQzzSC ) variable when both variables are populated. The usual mapping is BROAD=1, NARROW=2. | Unique | Inconsistent value for SMQ%Variable.1%SCN |
| AD0312 | Standardized MedDRA Query Scope (SMQzzSC) variable value must be BROAD, NARROW, or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SC value != BROAD, NARROW or null |
| AD0313 | Standardized MedDRA Query Scope Numeric (SMQzzSCN) variable value must be 1 (BROAD), 2 (NARROW), or NULL. The search strategy for SMQs can be narrow or broad. The preferred terms that are narrow in scope have high specificity for identifying events of interest while the broad terms have high sensitivity. By definition, all narrow terms are also considered within the broad score. Therefore, to summarize all broad terms, terms with either narrow OR broad would be considered. Will be null for terms that do not meet the criteria. Conditional on whether SMQ analysis is done. | Match | SMQ%Variable.1%SCN value != 1, 2 or null |
| AD0323 | Within a Study, all Phase (N) (APHASEN) variable values must be the same for each unique value of Phase (APHASE) variable when the primary variable APHASE is populated. | Unique | Inconsistent value for APHASEN |
| AD0324 | Within a Study, all Phase(APHASE) variable values must be the same for each unique value of Phase (N) (APHASEN) variable when the primary variable APHASEN is populated. | Unique | Inconsistent value for APHASE |
| AD0325 | Within a Study and a Period, all Subperiod within Period (ASPER) variable values must be the same for each unique value of Subperiod within Period (C) (ASPERC) variable when the primary variable ASPERC is populated. | Unique | Inconsistent value for ASPER |
| AD0326 | Within a Study and a Period, all Subperiod within Period (C) (ASPERC) variable values must be the same for each unique value of Subperiod within Period (ASPER) variable when the primary variable ASPER is populated. | Unique | Inconsistent value for ASPERC |
| AD0361 | The value of Analysis Start Date (ASTDT) variable must be less or equal to Analysis End Date (AENDT) variable value. | Condition | Value of ASTDT is greater than value of AENDT |
| AD0362 | The value of Analysis Start Datetime (ASTDTM) variable must be less or equal to Analysis End Datetime (AENDTM) variable value. | Condition | Value of ASTDTM is greater than value of AENDTM |
| AD0364 | Treatment Dose Units (DOSEU) variable is required, Treatment Dose at Record Start (DOSEON) or Cumulative Actual Treatment Dose (DOSCUMA) variable is present in the dataset. | Find | DOSEU variable is not present when DOSEON or DOSCUMA is present |
| AD0369 | If a Date variable is indicated to be imputated by population of an Imputation Flag (*DTF), that Date variable (*DT) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%DTF is populated, but %Variable.1%DT or %Variable.1%DTM is not populated |
| AD0370 | If a Time variable is indicated to be imputated by population of an Imputation Flag (*TMF), that Time variable (*TM) or Datetime variable (*DTM) must have a value. | Condition | %Variable.1%TMF is populated, but %Variable.1%TM or %Variable.1%DTM is not populated |
| AD0376 | In a pair of corresponding character and numeric variables, the secondary variable must be populated if its primary variable is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Primary variable %Variable.1% is populated, but its secondary variable %Variable% is not populated |
| AD0499 | If Subperiod within Period (ASPER) variable is used in a dataset, Period (APERIOD) variable must also be present in that dataset. | Find | ASPER is present and APERIOD is not present |
| AD0501 | On a given record, if Subperiod within Period (ASPER) variable is populated, then Period (APERIOD) variable must be populated. | Condition | ASPER is populated and APERIOD is not populated |
| AD0552 | If Multi-Response Criterion y Eval (N) (MCRITyMN) variable is used in a dataset, Multi-Response Criterion y Evaluation (MCRITyML) variable must also be present in that dataset. | Find | MCRITyMN is present and MCRITyML is not present |
| AD0605 | When analysis Phase (APHASE) variable is defined, the Phase Start Date (PHSDT) variable value must equal ADSL Phase w Start Date (PHwSDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDT != ADSL.PHwSDT |
| AD0607 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Time (PHSTM) variable value must equal ADSL Phase w Start Time (PHwSTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSTM != ADSL.PHwSTM |
| AD0609 | When analysis Phase (APHASE) variable is defined, the analysis Phase Start Datetime (PHSDTM) variable value must equal ADSL Phase w Start Datetime (PHwSDTM) for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHSDTM != ADSL.PHwSDTM |
| AD0611 | When analysis Phase (APHASE) is defined, the Phase End Date (PHEDT) variable value must equal ADSL Phase w End Date (PHwEDT) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDT != ADSL.PHwEDT |
| AD0613 | When analysis Phase (APHASE) variable is defined, the Phase End Time (PHETM) variable value must equal ADSL Phase w End Time (PHwETM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHETM != ADSL.PHwETM |
| AD0615 | When analysis Phase (APHASE) variable) is defined, the Phase End Datetime (PHEDTM) variable value must equal ADSL Phase w End Datetime (PHwEDTM) variable value for that phase defined by the value in Phase (N) (APHASEN) variable. APHASEN = w. | Lookup | APHASEN w has a PHEDTM != ADSL.PHwEDTM |
| AD1011 | In a pair of corresponding character and numeric variables (* and *N or *C) the primary or most commonly used variable must be populated if its secondary variable describing it is populated. Exceptions: *DTC, *FN, TRTPN, TRT01PN, PARAMN, AVALC, BASEC, *LOC, and *HIC. Corresponding character and numeric values must also have a one-to-one mapping consistency when the primary variable is populated, which are addressed in other rules. | Condition | Secondary variable %Variable% is populated, but its primary variable %Variable.1% is not populated |
| AD1012A | In a pair of corresponding character and numeric variables, the primary or most commonly used variable must be present if its secondary version describing it (*N or *C) is present. This is a rule designed to look explicitly at variable pairs defined in the CDISC standard documents. A similar rule that checks custom *N or *C variables (with a few exceptions) is AD1012. This rule is expected to be added to CDISC ADaM Conformance Rules in the future. | Find | Secondary variable is present, but its primary variable is not present |
| CT2001 | Variable must be populated with terms from its CDISC controlled terminology codelist. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' non-extensible codelist |
| CT2002 | Variable should be populated with terms from its CDISC controlled terminology codelist. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.CodeList.Name%' extensible codelist |
| CT2003 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT |
| CT2004 | Variable must be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms cannot be added into non-extensible codelists. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' non-extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2005 | Variable should be populated with terms from its CDISC controlled terminology codelist when its value level condition is met. New terms can be added as long as they are not duplicates, synonyms or subsets of existing standard terms. | Match | %Variable% value not found in '%Variable.Config.@Clause.CodeList.Name%' extensible codelist when %Variable.Config.@Clause.Expression% |
| CT2006 | Paired variables such as TEST/TESTCD must be populated using terms with the same Codelist Code value in CDISC control terminology. There is one-to-one relationship between paired variable values defined in CDISC control terminology by Codelist Code value within the same value level condition. | Match | %Variable% and %Variable.DecodedVariable% values do not have the same Code in CDISC CT when %Variable.Config.@Clause.Expression% |
| SD0001 | Domain table should have at least one record. | Property | No records in data source |
| SD0037 | Variable values should be populated with terms found in the user-defined codelist associated with the variable in define.xml. | Match | Value for %Variable% not found in (%Variable.CodeList.Name%) user-defined codelist |
| SD0054 | Variables listed in the data definition document (define.xml) should be included in the dataset. | Find | Variable in define.xml is not present in the dataset |
| SD0059 | Variable DataType in define.xml must match variable Type in dataset. Define-XML data types of 'integer' and 'float' match dataset type of 'Num', all other match 'Char'. | Condition | Define.xml/dataset variable type mismatch |
| SD0060 | Variables included in the dataset must be described in the data definition document (define.xml). | Match | Variable in dataset is not present in define.xml |
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |
| SD1063 | Datasets included in study data must be described in the data definition document (define.xml). | Match | Dataset is not present in define.xml |
| SD1071 | Datasets greater than 5 gigabytes (GB) in size should be split into smaller datasets no larger than 5 GB. | Property | Dataset is greater than 5 GB in size |
| SD1082 | Variable length should be assigned based on actual stored data to minimize file size. Datasets should be re-sized to the maximum length of actual data used prior to splitting. | Varlength | Variable length is too long for actual data |
| SD1228 | Variable value must be populated with terms from user-defined value level codelist as specified in define.xml file. | Match | %Variable% value not found in user-defined codelist '%Variable.@Clause.CodeList.Name%' when %Variable.@Clause.Expression% |
| SD1229 | Variable value must be populated when value level attribute Mandatory='Yes' as specified in define.xml file. | Required | %Variable% value is null when %Variable.@Clause.Expression% |
| SD1230 | Value level datatype must match the datatype described in define.xml. | Condition | %Variable% datatype is not %Variable.@Clause.DataType% when %Variable.@Clause.Expression% |
| SD1231 | Value level length must not exceed the length as specified define.xml. | Condition | %Variable% value is longer than defined max length %Variable.@Clause.Length% when %Variable.@Clause.Expression% |
| SD1324 | Variable Label in define.xml must match variable Label in dataset. | Match | Define.xml/dataset variable label mismatch |
| SD1325 | Dataset Description in define.xml must match dataset Description. | Property | Define.xml/dataset description mismatch |
Supplemental Qualifiers
| Variable | Description | Required | Data Type | Length |
|---|---|---|---|---|
| STUDYID | Study Identifier |
|
text | 200 |
| RDOMAIN | Related Domain Abbreviation |
|
text | 200 |
| USUBJID | Unique Subject Identifier | text | 200 | |
| IDVAR | Identifying Variable | text | 200 | |
| IDVARVAL | Identifying Variable Value | text | 200 | |
| QNAM | Qualifier Variable Name |
|
text | 200 |
| QLABEL | Qualifier Variable Label |
|
text | 200 |
| QVAL | Data Value |
|
text | 200 |
| QORIG | Origin |
|
text | 200 |
| ID | Description | Validator | Message |
|---|---|---|---|
| SD0062 | Domain table must have a valid format (e.g., SAS transport (XPORT) v.5 or text-delimited). | Property | Incompatible data source |