check_oe_bcva_1m_late_early_tot {sdtmchecks}R Documentation

Check if 1m BCVA test stops too late, too early and has correct total

Description

This ophthalmology check is for BCVA 1m test. It checks three conditions: <1> BCVA test stops too late, meaning that lines were read after number of correct letters is <= 3. <2> BCVA test stops too early, meaning that further lines were not read when all numbers of correct letters is > 3. <3> BCVA total score is not correct, meaning that the sum of the number of correct at 1 meter doesn't match with what has been recorded in eCRF (BCVA Scores eCRF Page - C. Total number correct at 1m). Please note that this check only works with USUBJID, VISIT, VISITNUM, OELOC, OELAT combination has unique dates (OEDTC). If your datasets are having situations like 1) unscheduled visits happening on different dates or 2) BCVA TOTAL happens on a different date from BCVA row tests, such combinations will be removed from check. Please note that this check excludes forms BCVA Low Vision Test (BCV5), BCVA Scores (BCV7), BCVA Low Luminance Scores (BCVLL5), BCVA Combined Assessments (BCVAC), BCVA Low Luminance Combined Assessments (BCVACLL) before running check as these forms do not include Row numbers.

Usage

check_oe_bcva_1m_late_early_tot(OE)

Arguments

OE

Ophtho Dataset with variables USUBJID, OESPID, OECAT, OESCAT, OETSTDTL, OESTRESN, OESTAT, OELOC, OELAT, OERESCAT, VISIT, VISITNUM, OEDTC, OEDY

Value

boolean value if check failed or passed with 'msg' attribute if the test failed

Author(s)

Rosemary Li (HackR 2021 Team Eye)

See Also

Other OPHTH: check_ae_aelat(), check_cm_cmlat_prior_ocular(), check_cm_cmlat(), check_oe_bcva_4m_late_early_tot(), check_oe_bcva_4m_vs_1m_req(), check_oe_bcva_tot_mismatch(), check_oe_sc_lat_count_fingers(), check_pr_prlat(), check_sc_dm_eligcrit(), check_sc_dm_seyeselc()

Examples

OE_too_late <- data.frame(
  USUBJID = "1",
  OESPID = "FORMNAME-R:2/L:2XXXX",
  OECAT = "BEST CORRECTED VISUAL ACUITY",
  OETSTDTL = "TESTING DISTANCE: 1M",
  OESCAT = c(rep("", 6), "TOTAL"),
  OESTAT = "",
  OERESCAT = c("ROW 1 - SNELLEN 20/200", 
               "ROW 2 - SNELLEN 20/160", 
               "ROW 4 - SNELLEN 20/100",
               "ROW 3 - SNELLEN 20/125", 
               "ROW 5 - SNELLEN 20/80", 
               "ROW 6 - SNELLEN 20/63", 
               ""),
  VISIT = "WEEK 1",
  VISITNUM = 5,
  OEDTC = "2020-06-01",
  OEDY = 8,
  OELOC = "EYE",
  OELAT = "LEFT",
  OESTRESN = c(5, 5, 5, 4, 3, 2, 24)
)
check_oe_bcva_1m_late_early_tot(OE_too_late)

OE_too_early <- data.frame(
  USUBJID = "1",
  OESPID = "FORMNAME-R:2/L:2XXXX",
  OECAT = "BEST CORRECTED VISUAL ACUITY",
  OETSTDTL = "TESTING DISTANCE: 1M",
  OESCAT = c(rep("", 5), "TOTAL"),
  OESTAT = "",
  OERESCAT = c("ROW 1 - SNELLEN 20/200", 
               "ROW 2 - SNELLEN 20/160", 
               "ROW 4 - SNELLEN 20/100",
               "ROW 3 - SNELLEN 20/125", 
               "ROW 5 - SNELLEN 20/80", 
               ""),
  VISIT = "WEEK 1",
  VISITNUM = 5,
  OEDTC = "2020-06-01",
  OEDY = 8,
  OELOC = "EYE",
  OELAT = "LEFT",
  OESTRESN = c(5, 5, 5, 4, 4, 23)
)
check_oe_bcva_1m_late_early_tot(OE_too_early)

OE_total_incorrect <- data.frame(
  USUBJID = "1",
  OESPID = "FORMNAME-R:2/L:2XXXX",
  OECAT = "BEST CORRECTED VISUAL ACUITY",
  OETSTDTL = "TESTING DISTANCE: 1M",
  OESCAT = c(rep("", 6), "TOTAL"),
  OESTAT = "",
  OERESCAT = c("ROW 1 - SNELLEN 20/200", 
               "ROW 2 - SNELLEN 20/160", 
               "ROW 4 - SNELLEN 20/100",
               "ROW 3 - SNELLEN 20/125", 
               "ROW 5 - SNELLEN 20/80", 
               "ROW 6 - SNELLEN 20/63", 
               ""),
  VISIT = "WEEK 1",
  VISITNUM = 5,
  OEDTC = "2020-06-01",
  OEDY = 8,
  OELOC = "EYE",
  OELAT = "LEFT",
  OESTRESN = c(5, 5, 5, 4, 4, 2, 28)
)
check_oe_bcva_1m_late_early_tot(OE_total_incorrect)


[Package sdtmchecks version 1.0.0 Index]