naccdata / uniform-data-set

Repository for REDCap artifacts for the UDS and associated forms
Other
9 stars 0 forks source link

Error checks involving multiple variables #210

Open hewanadun opened 2 weeks ago

hewanadun commented 2 weeks ago

@jculhane @kgauthreaux

Noticed this in A5D2 error checks but reporting as a general issue since this is relevant to all forms.

  1. For error checks involving multiple variables, "comp_vars" column should include all the variables involved in the check. For example,

    • In check a5d2-ivp-m-007, comp_vars column should have "MODEA5D2, RMREASA5D2", it's currently blank
    • In a5d2-ivp-m-137 and a5d2-ivp-m-352, HEADIMP is missing in the comp_vars list
    • In a5d2-ivp-m-169 and a5d2-ivp-m-354, DIABETES is missing in the comp_vars list These are only couple of examples, there are many checks where comp_vars are missing or incomplete.
  2. Similarly, for error checks involving multiple forms, "comp_forms" column should include all the forms involved in the check.

  3. When choosing the variable to report the error, please follow the following convention.

    • If the check is in format, "If A is .... then B (must be | cannot be) ...." => write the error under variable B.
      • Most of the error checks belong to this format and the variables RT using to report the error is correct for this type of checks (e.g. a5d2-ivp-m-007, a5d2-ivp-m-029, etc.)
    • If the check is in format, "At least one of P, Q, R, S, T must be ...." => write the error under variable P.
      • Some examples are a1-ivp-m-063, a1-ivp-m-076, these checks are also reported under the correct variables
    • If the check is in format, "If P, Q, R are ...., then Z (must be | cannot be) ..." => write the error under variable Z.
    • If the check is in format, "If X is .... then (at least one of | none of | all of | some of | etc.) P, Q, R, S, T must be ....." => write the error under variable X.
      • This is the case where RT error checks are reported under the wrong variables. Some examples
        • a5d2-ivp-m-137 and a5d2-ivp-m-352 - these checks should be moved to variable HEADIMP (currently reported under IMPAMFOOT)
        • a5d2-ivp-m-169 and a5d2-ivp-m-354 - these checks should be moved to variable DIABETES (currently reported under DIABINS)
      • Only the var_name column needs to be updated, no changes required in rest of the columns including the error_code. Above are only couple of examples, there are more similar cases in A5D2 and maybe in other forms. Please check and fix.
      • Just want to mention that checks in B5 plausibility (b5-ivp-p-1003, b5-ivp-p-1004, b5-ivp-p-1023, b5-ivp-p-1024, etc.) belong to this format and reported under the correct variable. So, please follow the same convention for any other checks in the above mentioned format.

Requesting these changes as it helps us to generate more meaningful error report. Adding @echeng06 for visibility.

echeng06 commented 1 week ago

@hewanadun for 3b, did you mean "At least one of P, Q, R, T..." instead of having the "if"? We have a couple cases where it's "If P, Q, R, T then Z" which I think fall under the 3a case instead.

hewanadun commented 1 week ago

@hewanadun for 3b, did you mean "At least one of P, Q, R, T..." instead of having the "if"? We have a couple cases where it's "If P, Q, R, T then Z" which I think fall under the 3a case instead.

Yes, that makes sense. I updated the description to match.

kgauthreaux commented 1 week ago

@echeng06 @hewanadun so for this form we have a lot of plausibility checks where it's If A --> then B which according to the rules should be written under variable B, but variable B is from another form. It seems like it would be confusing to have the check under a variable name that is not in that form. Should be leave it as variable A in these cases?

hewanadun commented 6 days ago

Yes, if the comparison is between two variables, it's ok to write the check under either variable. Check should be written in the form where the variable belongs to. If you are comparing multiple variables in form X against a single variable in form Y, please write the check in form Y.

On Oct 4, 2024 9:20 PM, kgauthreaux @.***> wrote:

@echeng06https://urldefense.com/v3/__https://github.com/echeng06__;!!K-Hz7m0Vt54!i7Ri1qTZryEoLQjj3VGYRgr5NMGPIHnRk-agWY0fimx7lqlJKNAvDUzEetCFoHr8sAxW4z_2eEdlB_oLBez_JwY$ @hewanadunhttps://urldefense.com/v3/__https://github.com/hewanadun__;!!K-Hz7m0Vt54!i7Ri1qTZryEoLQjj3VGYRgr5NMGPIHnRk-agWY0fimx7lqlJKNAvDUzEetCFoHr8sAxW4z_2eEdlB_oLFfCbDgc$ so for this form we have a lot of plausibility checks where it's If A --> then B which according to the rules should be written under variable B, but variable B is from another form. It seems like it would be confusing to have the check under a variable name that is not in that form. Should be leave it as variable A in these cases?

— Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/naccdata/uniform-data-set/issues/210*issuecomment-2394847112__;Iw!!K-Hz7m0Vt54!i7Ri1qTZryEoLQjj3VGYRgr5NMGPIHnRk-agWY0fimx7lqlJKNAvDUzEetCFoHr8sAxW4z_2eEdlB_oLJov3rQo$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ACEBRNAWFBLTHIYUX75RLQLZZ45EPAVCNFSM6AAAAABPAYY6F2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJUHA2DOMJRGI__;!!K-Hz7m0Vt54!i7Ri1qTZryEoLQjj3VGYRgr5NMGPIHnRk-agWY0fimx7lqlJKNAvDUzEetCFoHr8sAxW4z_2eEdlB_oL5fnt8dg$. You are receiving this because you were mentioned.Message ID: @.***>