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)
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, <null>, <null>
SPRARRY, Atrial, <null>
And therefore how can <null> 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
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 |
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