|
|
|
|
|
There is only one ADSL
per study
|
|
|
|
Any ADaM variable whose
name is the same as an SDTM variable must be a copy of the SDTM variable,
and its label and values must not be modified
|
|
|
|
Any ADaM variable whose
name is the same as an SDTM variable must be a copy of the SDTM variable,
and its label and values must not be modified
|
|
|
|
Any ADaM variable whose
name is the same as an SDTM variable must be a copy of the SDTM variable,
and its label and values must not be modified
|
|
|
|
The names of all other
character flag (or indicator) variables end in FL
|
|
|
|
The names of the corresponding
numeric flag (or indicator) variables end in FN
|
|
|
|
If the numeric flag
is used, the character version (*FL) is required
|
|
|
|
*FN and *FL must be
a one-to-one mapping
|
|
|
|
*FN and *FL must be
a one-to-one mapping
|
|
|
|
*FN and *FL must be
a one-to-one mapping
|
|
|
|
ADaM variable names
must be no more than 8 characters in length
|
|
|
|
ADaM variable names
must start with a letter (not underscore), and be comprised only of
letters (A-Z), underscore (_), and numerals (0-9)
|
|
|
|
ADaM variable names
must start with a letter (not underscore), and be comprised only of
letters (A-Z), underscore (_), and numerals (0-9)
|
|
|
|
All ADaM variable labels
must be no more than 40 characters in length
|
|
|
|
All ADaM character variables
must be no more than 200 characters in length
|
|
|
|
In general, the variable
labels specified in the tables in Section 3 are required. There are
only two exceptions to this rule (1) descriptive text is allowed at
the end of the labels of variables whose names contain indexes "y",
"xx", or "zz"; and (2) asterisks (*) and ellipses (...) in specified
variable labels should be replaced by the sponsor with appropriate
text
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed.
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed.
|
|
|
|
For subject-level character
population flag variables: N = no (not included in the population),
Y = yes (included). Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For subject-level numeric
population flag variables: 0 = no (not included), 1 = yes (included).
Null values are not allowed.
|
|
|
|
For record-level character
population flag variables: Y = yes (included). Null values are allowed
|
|
|
|
For parameter-level
character population flag variables: Y = yes (included). Null values
are allowed
|
|
|
|
For record-level numeric
population flag variables: 1 = yes (included). Null values are allowed
|
|
|
|
For parameter-level
numeric population flag variables: 1 = yes (included). Null values
are allowed
|
|
|
|
The *GRy and associated
*GRyN variable must have a one-to-one relationship
|
|
|
|
The *GRy and associated
*GRyN variable must have a one-to-one relationship
|
|
|
|
The names of date imputation
flag variables end in DTF
|
|
|
|
The names of time imputation
flag variables end in TMF
|
|
|
|
Numeric dates, times
and datetimes should be formatted so as to be human readable with
no loss of precision
|
|
|
|
Numeric dates, times
and datetimes should be formatted so as to be human readable with
no loss of precision
|
|
|
|
Numeric dates, times
and datetimes should be formatted so as to be human readable with
no loss of precision
|
|
|
|
If a *DTM and associated
*TM variable exist, then the *TM variable must match the time part
of the *DTM variable
|
|
|
|
If a *DTM and associated
*DT variable exist, then the *DT variable must match the date part
of the *DTM variable
|
|
|
|
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
ADSL must have at least
one variable that ends in FL because you need at least one population
flag
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
Invalid STUDYID/USUBJID
combination not found in the SDTM Demographics domain
|
|
|
|
ADSL is one record per
USUBJID
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
All *DT variables must
be numeric
|
|
|
|
All *TM variables must
be numeric
|
|
|
|
TRTSDT or TRTSDTM variables
are required if there is an investigational product
|
|
|
|
Any ADSL variable beginning
with TRT and ending in A or beginning in TRT and ending in AN must
include xx where xx is a two-digit number
|
|
|
|
Any ADSL variable beginning
with TRT and ending in A or beginning in TRT and ending in AN must
include xx where xx is a two-digit number
|
|
|
|
Any variable beginning
with TRT and ending in AN must have a corresponding variable beginning
with TRT, having the same increment and end in A
|
|
|
|
Any ADSL variable beginning
with TR and containing PG must have a padded numeric of 01 and increment
|
|
|
|
Any variable beginning
with TR, containing PG and ending in N must have a corresponding variable
beginning with TR, containing PG, and having the same increment
|
|
|
|
Any ADSL variable beginning
with TR and containing AG must have numeric where xx is a two-digit
number
|
|
|
|
Any variable beginning
with TR, containing AG and ending in N must have a corresponding variable
beginning with TR, containing AG, and having the same increment
|
|
|
|
Any variable beginning
with TR, containing AG and ending in N must have a corresponding variable
beginning with TR, containing AG, and having the same increment
|
|
|
|
ADSL must have the variables
SUBJID, SITEID, AGE, AGEU, SEX, RACE, ARM
|
|
|
|
ADSL must have at least
one TRTxxP variable
|
|
|
|
Any ADSL variable beginning
with TRT and ending in P must have a suffix that is a two-digit integer
[01-99]
|
|
|
|
Any ADSL variable beginning
with TRT and ending in PN must have a suffix that is a two-digit integer
[01-99]
|
|
|
|
Any variable beginning
with TRT and ending in PN must have a corresponding variable beginning
with TRT, having the same increment and end in P
|
|
|
|
Any variable beginning
with TRT and ending in PN must have a corresponding variable beginning
with TRT, having the same increment and end in P
|
|
|
|
If there is more than
one treatment period, then TRxxSDT and TRxxEDT should exist in ADSL
|
|
|
|
If there is more than
one treatment period, then TRxxSDT and TRxxEDT should exist in ADSL
|
|
|
|
If TRTxxA exists, then
TRTxxP should exist
|
|
|
|
If TRT(xx+1)P exists,
then TRTxxP should exist for xx+1 > 01
|
|
|
|
If TR01SDT exists, then
TRTSDT=TR01SDT
|
|
|
|
TRTEDT = maximum(TRxxEDT)
|
|
|
|
BDS variables STUDYID,
USUBJID, SUBJID, SITEID, and so on, must match ADSL variable in metadata
|
|
|
|
BDS variables STUDYID,
USUBJID, SUBJID, SITEID, and so on, must match ADSL variable in metadata
|
|
|
|
BDS variables STUDYID,
USUBJID, SUBJID, SITEID, and so on, must match ADSL variable in metadata
|
|
|
|
All data sets must have
the variables STUDYID and USUBJID
|
|
|
|
All data sets must have
the variables STUDYID and USUBJID
|
|
|
|
BDS must have TRTP variable
|
|
|
|
TRTP must match at least
one value in TRT01P-TRTxxP
|
|
{_cstList:USUBJID+TRT##P}
{_cstList:USUBJID+TRTP}
|
|
TRTPN must be a one-to-one
match to TRTP
|
|
|
|
Any variable beginning
with TRTPG must have a suffix of 1 and increment up to 9
|
|
|
|
TRTAN must be a one-to-one
match to TRTA
|
|
|
|
Any variable beginning
with TRTPG and ending in N must have a corresponding variable beginning
with TRTPG, and having the same increment
|
|
|
|
*SDY is less than or
equal to *EDY if both are nonmissing
|
|
|
|
*STDY is less than or
equal to *ENDY if both are nonmissing
|
|
|
|
APEREDT must have corresponding
APxxEDT value
|
|
{_cstlist:APEREDT+APERIOD}
{_cstlist:AP##EDT}
|
|
APEREDTM must have corresponding
APxxEDTM value
|
|
{_cstlist:APEREDTM+APERIOD}
{_cstlist:AP##EDTM}
|
|
APERIOD value must have
corresponding TRTxxP/TRxxSDT/TRxxEDT variables
|
|
{_cstlist:APERIOD} {_cstlist:TRT##P}
|
|
APERIOD value must have
corresponding TRTxxP/TRxxSDT/TRxxEDT variables
|
|
{_cstlist:APERIOD} {_cstlist:TR##SDT}
|
|
APERIOD value must have
corresponding TRTxxP/TRxxSDT/TRxxEDT variables
|
|
{_cstlist:APERIOD} {_cstlist:TR##EDT}
|
|
APERIODC must have one-to-one
mapping with APERIOD
|
|
|
|
APERSDT must have corresponding
APxxSDT value
|
|
{_cstlist:APERSDT+APERIOD}
{_cstlist:AP##SDT}
|
|
APERSDTM must have corresponding
APxxSDTM value
|
|
{_cstlist:APERSDTM+APERIOD}
{_cstlist:AP##SDTM}
|
|
AVISITN is a one-to-one
mapping with AVISIT
|
|
|
|
When ARELTM is present,
the anchor time variable and ARELTMU must also be included in the
data set, and the anchor time variable must be identified in the metadata
for ARELTM
|
|
|
|
When ARELTM is present,
the anchor time variable and ARELTMU must also be included in the
data set, and the anchor time variable must be identified in the metadata
for ARELTM
|
|
|
|
When ARELTM is present,
the anchor time variable and ARELTMU must also be included in the
data set, and the anchor time variable must be identified in the metadata
for ARELTM
|
|
|
|
When ARELTM is present,
the anchor time variable and ARELTMU must also be included in the
data set, and the anchor time variable must be identified in the metadata
for ARELTM
|
|
|
|
If ATPTREF is populated,
then ATPT must be populated
|
|
|
|
If ATPTREF is populated,
then ATPT must be populated
|
|
|
|
Within the same parameter
there must be a one-to-one mapping between ATPT and ATPTN if both
variables are present
|
|
|
|
If *SDT and *EDT are
nonmissing, then *SDT <= *EDT
|
|
|
|
If *SDTM and *EDTM are
nonmissing, then *SDTM <= *EDTM
|
|
|
|
PARAMTYP has the same
value for all records within a parameter
|
|
|
|
PARCATy has the same
value for all records within a parameter
|
|
|
|
PARCATy and PARCATyN
have a one-to-one mapping
|
|
|
|
If BASE is populated,
then there must be a corresponding AVAL value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BASE+ABLFL}
|
|
If BASEC is populated,
then there must be a corresponding AVALC value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BASEC+ABLFL}
|
|
If both BASE and BASEC
are populated, then there must be a one-to-one mapping
|
|
|
|
If BASETYPE is populated
for at least one record within a parameter, then it must be populated
for all records within that parameter
|
|
|
|
R2BASE must equal AVAL/BASE
|
|
{_cstList:R2BASE+AVAL+BASE}
|
|
R2AyLO must equal AVAL/AyLO
|
|
{_cstList:R2A#LO} {_cstList:A#LO}
|
|
R2AyHI must equal AVAL/AyHI
|
|
{_cstList:R2A#HI} {_cstList:A#HI}
|
|
SHIFTyN must be a one-to-one
mapping with SHIFTy
|
|
|
|
If CRITyFL is populated,
then CRITy must be populated
|
|
|
|
If CRITyFL is populated,
then CRITy must be populated
|
|
|
|
PARAM and PARAMCD are
present and have a one-to-one mapping
|
|
|
|
PARAMCD values should
follow SAS V5 variable naming conventions
|
|
|
|
PARAMCD values should
follow SAS V5 variable naming conventions
|
|
|
|
PARAMN is a one-to-one
mapping with PARAM if present
|
|
|
|
PARAMN must be an integer
|
|
|
|
If both AVAL and AVALC
are populated, then there must be a one-to-one mapping
|
|
|
|
The values of CRITy
within a parameter must be constant on all rows on which it is populated
|
|
|
|
If BASE is populated,
then it must be with a value flagged for some record via ABLFL for
that parameter
|
|
{_cstList:USUBJID+PARAMCD+
BASETYPE+BASE+AVAL+ABLFL}
|
|
If there are multiple
baseline records flagged for a given parameter within a subject, then
BASETYPE should be populated and contain different values for the
baseline records within a subject
|
|
{_cstList:USUBJID+PARAMCD+
BASETYPE+ABLFL}
|
|
If there are multiple
baseline records flagged for a given parameter within a subject, then
BASETYPE should be populated and contain different values for the
baseline records within a subject
|
|
{_cstList:USUBJID+PARAMCD+
BASETYPE+ABLFL}
|
|
Whenever there is more
than one definition of baseline, the BASETYPE column is required.
BASETYPE identifies the definition of baseline that corresponds to
the value of BASE in each row. There is only one BASE column, and
only one column for each qualifying function of AVAL and BASE
|
|
{_cstList:USUBJID+PARAMCD+
ABLFL}
|
|
Variable CRITyFL must
be present on the data set if variable CRITy is present, and vice
versa.
|
|
|
|
Variable CRITyFL must
be present on the data set if variable CRITy is present, and vice
versa
|
|
|
|
If AWTDIFF is present,
then AWTARGET must be present
|
|
|
|
If AWTDIFF is populated,
then AWTARGET must be populated
|
|
|
|
If AWU is present, then
AWLO and AWHI must be present
|
|
|
|
If AWU is populated,
then AWLO and AWHI must be populated
|
|
|
|
*LO must be less than
or equal to *HI
|
|
|
|
If BTOXGR is present,
then ATOXGR and ABLFL must be present
|
|
|
|
If BTOXGR is present,
then ATOXGR and ABLFL must be present
|
|
|
|
If BTOXGR is populated,
then there must be a corresponding ATOXGR value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BASETYPE+BTOXGR+ATOXGR+ ABLFL}
|
|
If BNRIND is present,
then ANRIND and ABLFL must be present
|
|
|
|
If BNRIND is present,
then ANRIND and ABLFL must be present
|
|
|
|
If BNRIND is populated,
then there must be a corresponding ANRIND value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BASETYPE+BNRIND+ANRIND+ ABLFL}
|
|
CNSR should be an integer
|
|
|
|
If STARTDT is present,
then CNSR must be present
|
|
|
|
If ONTRTFL ^=Y then
TRTSDT <= ADT <= TRTEDT should not be true
|
|
{_cstList:USUBJID+ONTRTFL+ADT}
{_cstList:USUBJID+TRTSDT}
|
|
If ONTRTFL ^=Y then
TRTSDT <= ADT <= TRTEDT should not be true
|
|
{_cstList:USUBJID+ONTRTFL+ADT}
{_cstList:USUBJID+TRTEDT}
|
|
If ONTRTFL ^=Y then
TRTSDT <= ADT <= TRTEDT should not be true
|
|
{_cstList:USUBJID+ONTRTFL+ADT}
{_cstList:USUBJID+TRTSDT+TRTEDT}
|
|
If LVOTFL=Y then TRTSDT
<= ADT <= TRTEDT should be true
|
|
{_cstList:USUBJID+LVOTFL+ADT}
{_cstList:USUBJID+TRTSDT}
|
|
A maximum of one record
within a parameter timepoint can have LVOTFL=Y
|
|
|
|
ABLFL must have a value
of Y or null
|
|
|
|
A maximum of one record
within a parameter can have ABLFL=Y
|
|
|
|
ANLzzFL must have a
value of Y or null
|
|
|
|
If LVOTFL=Y then TRTSDT
<= ADT <= TRTEDT should be true
|
|
{_cstList:USUBJID+LVOTFL+ADT}
{_cstList:USUBJID+TRTEDT}
|
|
The value of SRCDOM
should reference a valid SDTM domain.
|
|
|
|
If BASE is populated,
then it must be with a value flagged for some record via ABLFL for
that parameter
|
|
{_cstList:USUBJID+PARAMCD+
BASE+AVAL+ABLFL}
|
|
If BTOXGR is populated,
then there must be a corresponding ATOXGR value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BTOXGR+ATOXGR+ABLFL}
|
|
If BNRIND is populated,
then there must be a corresponding ANRIND value with ABLFL=Y
|
|
{_cstList:USUBJID+PARAMCD+
BNRIND+ANRIND+ABLFL}
|