AD1008: Null value in variable marked as Required

Hello,
The rule AD1008 checks for null values in required variables. Many ERRORS are printed due to missing values in TRTP where visit is SCREENING. At this time point I can't assign a planned treatment. Also in the documentation (CDISC ADaM Implementation Guide Version 1.0, page 51) an example displays missing values.
Please update this check.
Best regards,
Matthias

mdigian's picture

AD1008: Null value in variable marked as Required

Thanks Matthias.   Good catch.   I see what you are referring to on page 51 (Table 4.2.1.8, Creation of Endpoint Rows to Facilitate Analysis of a Crossover Design )

AD1008 wasn't an explicity published rule by the ADaM team.   We applied the same logic from SDTM checks to extend any CORE REQUIRED variable that must be present in the dataset to also be POPULATED/not null.  I will take the feedback to the OpenCDISC community for revision.   We will also bubble up the feedback to the ADaM team.

Any suggestions on how to make this check more practical ?   Is there any other variable we can check to run it conditionally, like "when AVISIT not like 'screen', then TRTP must not be null ?   Or perhaps when APERIOD is not null ??

lehrkam's picture

A possible solution for TRTP

A possibility would be to check only visit(num)s which can be found in ex.

Best regards,
Matthias

Possibly set TRTP = "NO_TRT"

Hi,

We have approached this issue for Screening in another way. When we have periods or visits defined as screening/washout/follow-up etc we explicitly set TRTP to be "NO_TRT" so it is clear that there is no planned treatment since we had also interpreted the Req variables as following similar rules to SDTM meaning that TRTP couldn't be null.

Though looking at table of 4.2.1.8 a possibility to handle crossovers would be apply the rule as TRTP or TRTSEQP must not be null?

 Iain

lehrkam's picture

That is a possibility to avoid check AD1008 but ...

This is a possibility to avoid check AD1008 but the rule should not end in an ERROR. The ADaM rule of required variables is: "Req = Required. The variable must be included in the dataset.", so null values are allowed. The check AD1008 should be deleted in the openCDISC Validator.

Best regards,
Matthias

mdigian's picture

If you delete AD1008, then

If you delete AD1008, then all these variables will allow nulls.  Would it be better if the ADaM team and OpenCDISC community allowed just a select few to be null, if any ?

Data set role variable label Core
ADSL Identifier STUDYID Study Identifier Req
ADSL Identifier USUBJID Unique Subject Identifier Req
ADSL Identifier SUBJID Subject Identifier for the Study Req
ADSL Identifier SITEID Study Site Identifier Req
ADSL Demographics AGE Age Req
ADSL Demographics AGEU Age Units Req
ADSL Demographics SEX Sex Req
ADSL Demographics RACE Race Req
ADSL Treatment ARM Description of Planned Arm Req
ADSL Treatment TRT01P Planned Treatment for Period 01 Req
BDS Identifier STUDYID Study Identifier Req
BDS Identifier USUBJID Unique Subject Identifier Req
BDS Treatment TRTP Planned Treatment Req
BDS Analysis Parameter PARAM Parameter Req
BDS Analysis Parameter PARAMCD Parameter Code Req

Most of these are defined as

Most of these are defined as "must be identical to the the SDTM". So should match the restrictions in SDTM and can be split in two - where the variable is Req in SDTM e.g. SEX then the rule can remain as SEX should not be null, however, where the variable is Exp in SDTM e.g AGE then this rule should be removed as AGE is allowed to be null in SDTM and should also be allowed to be null in ADaM.

Excluding those leaves just the 4:

ADSL.TRT01P, BDS.TRTP, BDS.PARAM and BDS.PARAMCD.

I had thought these should all be non null but this isn't what is explicitly written in the implementation guide as pointed out by Matthias.

 

mdigian's picture

List of Not Null variables

thank you Iain and Matthias.   I will add these notes to list of potential changes for next release. 

Data set variable not null Data set variable not null
ADSL STUDYID x   BDS STUDYID x
ADSL USUBJID x   BDS USUBJID x
ADSL SEX x   BDS PARAM x
ADSL SITEID x   BDS PARAMCD x
ADSL ARM x   BDS TRTP  
ADSL SUBJID          
ADSL AGE          
ADSL AGEU          
ADSL RACE          
ADSL TRT01P          
lehrkam's picture

Copied SDTM variables

Don't forget that copied variables must follow the same rules and must have the same contents as the original variable. So the check is okay for required SDTM variables. Only the variables TRT01P, TRTP, PARAM and PARAMCD can have null values. From my point of view this is okay.

Best regards,
Matthias