AD0221 'Inconsistent value for --CAT--

Can your provide the data scenario which is causing what you believe to be a false positive error ? This rule doesn’t actually inspect AVAL or AVALC. it would only inspect PARAM and AVALCATy

The ADaM 1.0 IG states the following.

A categorical representation of AVAL and/or AVALC. Not necessarily a one-to-one mapping to AVAL and/or AVALC. For example, if PARAM is “Headache Severity” and AVAL has values 0, 1, 2, or 3, AVALCAT1 can categorize AVAL into “None or Mild” (for AVAL 1 or 2) and “Moderate or Severe” (for AVAL 3 or 4)

AD0221 OC rule: All *CATy values must be the same for each unique value of the variable it categorizes within a PARAMCD. e.g. AVALCATy to AVAL, BASECATy to BASE.

ADaM check rule no 222: BASECATy must have the same value for all records within a parameter for a given value of BASE.

The first record is not populated for BASEC and BASECAT1, but the rule checks BASE and for this parameter BASE is not used.

AVISIT PARAMCD AVAL AVALC BASE BASEC BASECAT1

Screening SPRARRY . Atrial .

Screening SPRARRY . Atrial . Atrial Atrial

Visit 2 SPRARRY . Atrial . Atrial Atrial

I think i see what you mean now. For future reference, try to include data examples as a grid by copying from microsoft word into this editor with “FULL HTML” selected



AVISIT



PARAMCD



AVAL



AVALC



BASE



BASEC



BASECAT1



AD00221



Screening



SPRARRY



Atrial



















error ?



Screening



SPRARRY



Atrial



Atrial



Atrial















Visit 2



SPRARRY



Atrial



Atrial



Atrial













So the problem ist that SPRARRY, BASE, BASECAT1 has 2 unique combos:

SPRARRY, ,

SPRARRY, Atrial,

And therefore how can be used to category both. One way to fix this is to only run the rule when certain variables are populated. However in this case, why isn’t AVALC and BASE populated for record 1 ? There does seem to be an inconsistency which the rule brings to light

I edited your table Miguel. I believe this is what you were trying to show. So Is the issue that you are getting errors on BASECAT1 must be the same for a given BASE? which is not the case since
. → null
. → Atrial



AVISIT



PARAMCD



AVAL



AVALC



BASE



BASEC



BASECAT1



Screening



SPRARRY



.



Atrial



.











Screening



SPRARRY



.



Atrial



.



Atrial



Atrial



Visit 2



SPRARRY



.



Atrial



.



Atrial



Atrial

Hi, We calculate AVALCAT only when DTYPE is not missing as these records are used in tables latter. But we get this error.

Thanks.

Hi Miguel. It’s been a while since i’ve looked at this. Can you provide a data example where your data fails but you believe it shouldn’t ? You can also email it to me at mike@opencdisc.org if easier as a spreadsheet annotated with the fields that trigger the error…or as an xpt or csv that i can validate myself. here is the data i used for testing



PARAMCD



AVALC



AVAL



AVALCAT1



BASE



BASEC



BASECAT1



CHG



CHGCAT1



PCHG



PCHGCAT1



WEIGHT



A



30



AVG



30



A



AVG



0



LOW



0



CAT1



WEIGHT



A



30



FAIL 221



30



A



AVG



0



LOW



0



CAT1



WEIGHT



AA



35



AVG



30



A



FAIL 221



5



LOW



16.67



CAT1



WEIGHT



B



60



MEDIUM



30



A



AVG



30



LOW



100



CAT1



WEIGHT



BB



65



MEDIUM



30



A



AVG



35



MEDIUM



116.67



CAT1



WEIGHT



BB



65



MEDIUM



30



A



AVG



35



MEDIUM



116.67



CAT1



WEIGHT



C



90



HIGH



30



A



AVG



60



HIGH



200



CAT1



WEIGHT



C



90



HIGH



30



A



AVG



60



FAIL 222



200



CAT1



HEIGHT



X



30



LOW



30



X



LOW



0



LOW



0



CAT2



HEIGHT



Y



60



MEDIUM



30



X



LOW



30



LOW



100



CAT2



HEIGHT



Y



60



MEDIUM



30



X



LOW



30



LOW



100



FAIL 222



HEIGHT



Z



90



HIGH



30



X



LOW



60



MEDIUM



200



CAT2

Hi, Check fails inconsistently as shown below. My guess is that if i populate AVALCAT for all records it might go away but would like to work without making that adjustment. here is a sample:

SUBJECT PARAMCD AVISIT AVAL AVALCAT1 DTYPE Check
1 WEIGHT SCR 30
1 WEIGHT C1D1 40 FAIL
1 WEIGHT BASELINE 35 <=50 AVERAGE
2 WEIGHT SCR 50
2 WEIGHT C1D1 60
2 WEIGHT BASELINE 55 >50 AVERAGE FAIL

I’m coming back on this subject.

I did not fully understand the previous data examples, but I have put together an example (with a given parameter):

AVAL / AVALCAT1
1 / foo
1 / foo
1 / (null)
2 / bar
2 / bar
2 / (null)
3 / bar
3 / bar
3 / (null)

P21 accepts this (rule AD0221 has When=“%Variable.1%CAT%Variable.2% != ‘’”).

I do not understand why: this is for me a violation of the categorization principle: the value of AVAL must predict the value of AVALCAT.

Am I missing something?

Cheers

Hi Thierry,

AD0221 rule is created by CDISC ADaM team. Pinnacle 21 just provides its exact implementation. So, this is a question to CDISC team.

I share your concern. After release of ADaM-IG 1.1, CDISC team modified most “inconsistent value” rules by adding an exception for records with a missing value. Per my understanding, their goal is to avoid any potential false-positive validation messages. They care less about false-negative non-reported data issues.

Kind Regards,
Sergiy

This rule ‘Inconsistent value for --CAT–’ is based on a few ADaM rules (221,222,224,226). All *CATy values must be the same for each unique value of the variable it categorizes within a PARAMCD. e.g. AVALCATy to AVAL. I think this rule doesn’t cover a very feasible scenario: AVAL not available but AVALC populated, so it could be possible to create AVALCATy from AVALC. This scenario obviously gets an error that it should be avoided. Do you think you can do something with this issue? Thanks. Miguel