k Karen
on

 

Hi... Rule AD0011 may not be working. It's flagging every 0/N ITTFL flag in my file, but they are all OK. My file has ITTFN = 0 if and only if ITTFL = N. Here's what the rule is printing: Variables = ITTFN, ITTFL Values = 0, N Rule ID = AD0011 Message = *FL = N and *FN != 0 The Values= list shows that the values are 0 and N, but the message is saying the flag is N but the value is NOT 0. No other messages are being generated for the flag variables. Thanks, Karen

Forums: ADaM

m Michael
on August 29, 2011

 

I just ran a test file through with the following values and it threw this error:  *FL = N and *FN != 0.    When I change it to FN to 0 or does not throw the error.  Even if there are spaces before and after the 0.   Can you try running the one record file below and tell me your results ? (remove any carriage returns in the record)  The results should be only 1 error for the FASFL/N combo.

 

The rule in your config file should appear like  this

 

<val:Condition

ID         ="AD0011"

Category   ="Consistency"

Type       ="Error"

When       ="%Variables[*FL]% == 'N'"

Test       ="%Variable.1%FN == '0'"

Message    ="*FL = N and *FN != 0"

Description="When a Flag variable (FL) is N, its corresponding Flag numeric variable (FN) must be 0"

/>

 

STUDYID,USUBJID,SUBJID,SITEID,SITEGR1,SITEGR1N,AGE,AGEU,SEX,RACE,RACEGR1,RACEGR1N,FASFL,FASFN,SAFFL,SAFFN,ITTFL,ITTFN,PPROTFL,PPROTFN,COMPLFL,COMPLFN,RANDFL,RANDFN,ENRLFL,ENRLFN,ARM,TRT01P,TRT01PN,TRT01A,TRT01AN,TRTSEQP,TRTSEQPN,TRTSEQA,TRTSEQAN,TR01PG1,TR01PG1N,TR01AG1,TR01AG1N,RANDDT,TRTSDT,TRTSTM,TRTSDTM,TRTSDTF,TRTSTMF,TRTEDT,TRTETM,TRTEDTM,TRTEDTF,TRTETMF,TR01SDT,TR01STM,TR01SDTM,TR01SDTF,TR01STMF,TR01EDT,TR01ETM,TR01EDTM,TR01EDTF,TR01ETMF,AP01SDT,AP01STM,AP01SDTM,AP01SDTF,AP01STMF,AP01EDT,AP01ETM,AP01EDTM,AP01EDTF,AP01ETMF

0822-018,10001,1,1234,,,33,Y,M,WHITE,,,N,1,Y,1,N,0,Y,1,Y,1,Y,1,Y,1,Arm GRP 1,Drug X 5 mg,1,Drug X 5 mg,1,Arm GRP 1,1,Arm GRP 1,1,Mike,29,Mike,29,20090101,20090101,,,,,20090731,,,,,20090101,,,,,20090731,,,,,,,,,,,,,,

 

k Karen
on August 31, 2011

Hi... Your test record works. There is only one error issued, for the "1, N" record. So I modified my own ADSL file to have only two records, one with N/1 and one with N/0 as you have it in your test record, for ITTFL/ITTFN. The report issues error messages for both records. The Values column shows "1, N" and "0, N". The rule in my config file matches yours exactly. Thanks for your help, Karen
m Michael
on August 31, 2011

So you still have an issue?   Can you send me your test file ?   Also, are you setting the FL=N and FN=0 ?

k Karen
on September 2, 2011

Hi - yes, the problem is still there, but here's an interesting thing: it only occurs when the input is a transport file, not a CSV. Here is the test data as CSV: STUDYID,USUBJID,SUBJID,SITEID,AGE,AGEU,SEX,RACE,ETHNIC,ITTFL,ITTFN,SCREENFL,SCREENFN,COMPLFL,COMPLFN,RANDFL,RANDFN,OLFL,OLFN,ARM,TRT01P,TRT01PN 1234,12341,001-001,001,18,YEARS,M,WHITE,NOT HISPANIC OR LATINO,N,0,Y,1,N,0,N,0,N,0,TEST,TEST,3 1234,12342,001-002,001,18,YEARS,M,WHITE,NOT HISPANIC OR LATINO,N,1,Y,1,Y,1,Y,1,Y,1,TEST,TEST,1 As a CSV file, I get just one (correct) error message for ITTFL/FN on record 2. No other AD0011 errors are issued. As a transport file, I get four error messages: 3 for record 1, and 1 for record 1. Here are the errors in the report: 1 ITTFN, ITTFL 0, N AD0011 *FL = N and *FN != 0 1 COMPLFL, COMPLFN N, 0 AD0011 *FL = N and *FN != 0 1 RANDFN, RANDFL 0, N AD0011 *FL = N and *FN != 0 2 ITTFN, ITTFL 1, N AD0011 *FL = N and *FN != 0 It's also interesting that the SCREENFL/FN and OLFL/FN variables are not being checked. Thanks, Karen
m Michael
on September 2, 2011

I'm not sure why it's not checking SCREENFL/FN and OLFL/FN.  The best thing to do is to send me your test .xpt file.   We'll need to investigate more thoroughly in our own environment.

 

mike.digian@pinnacle21.net

m Michael
on September 2, 2011

Actually, the answer to why SCREENFL/FN OLFL/FN didn't get validated because those variables don't explicity exist in ADaM.   For the check to work generically for any user defined FL variable, here is how to fix that. Note this fix will be part of a future official release of the rules.

http://www.opencdisc.org/projects/validator/rules/ad0048#comment-334

add this to ItemDef section <ItemDef OID="*FL" Name="*FL" DataType="text" Length="1" def:Label="Other User Defined Population Flag"/>

add this to ADSL ItemRef:<ItemRef ItemOID="*FL" OrderNumber="71" Mandatory="No" Role="Population Ind" val:Core="Permissible"/>

 

 

m Michael
on September 5, 2011

Hi Karen,

Thanks for contributing to OpenCDISC to identify this issue.   Your reward is a temporary solution :).   Our resident SME Tim just notified me within the hour of the fix:

This was a bug specifically related to the value 0 in the SasTransportDataSource parser, which I've just fixed for the 1.3 release. A temporary fix is to add the following to the lib/properties/settings.properties file:

Engine.SasRoundingMode = Old

- Tim

 

k Karen
on September 6, 2011

Hooray! My thanks to you both!! Karen

Want a demo?

Let’s Talk.

We're eager to share and ready to listen.

Cookie Policy

Pinnacle 21 uses cookies to make our site easier for you to use. By continuing to use this website, you agree to our use of cookies. For more info visit our Privacy Policy.