Data checks

Functions for data checks.

check_ae_aeacn_ds_disctx_covid()

Check for COVID-19 AE with DRUG WITHDRAWN action without "ADVERSE EVENT" for DS Trt Discon

check_ae_aeacnoth()

Check for null AEACNOT1/2 when AEACNOTH = 'MULTIPLE'

check_ae_aeacnoth_ds_disctx()

Check if, whenever a patient experiences an AE leading to study discontinuation, they also have a DS record indicating this.

check_ae_aeacnoth_ds_stddisc_covid()

Check for COVID-19 AE leading to Study Discon without DS Study Discon

check_ae_aedecod()

Check for missing AEDECOD values

check_ae_aedthdtc_aesdth()

Check AEs with AEDTHDTC value but AESDTH not "Y"

check_ae_aedthdtc_ds_death()

Check for missing AEDTHDTC where DS indicates death due to AE

check_ae_aelat()

Check if AESOC has Eye, and Affected Eye is missing

check_ae_aeout()

Check for inconsistency between AE outcome (AEOUT) and death date (AEDTHDTC)

check_ae_aeout_aeendtc_aedthdtc()

Check for AE outcome (AEOUT) of 'FATAL' with non-missing resolution date that is not equal to the death date

check_ae_aeout_aeendtc_nonfatal()

Check for non-fatal AEs with inconsistent AEOUT and AEENDTC

check_ae_aerel()

Check for AEREL1 - AERELN when AEREL is missing and when AEREL is unexpected

check_ae_aesdth_aedthdtc()

Check AEs with AESDTH of "Y" but No AEDTHDTC Value

check_ae_aestdtc_after_aeendtc()

Check that all AE start dates are on or before AE end dates

check_ae_aestdtc_after_dd()

Check for AE dates occurring after death date

check_ae_aetoxgr()

Check for missing AETOXGR and/or AESEV values

check_ae_death()

Check for Grade 5 AE death variable consistency

check_ae_death_ds_discon()

Check if death in AE then there should be a study discon form

check_ae_ds_partial_death_dates()

Check for partial death dates in AE and DS

check_ae_dup()

Check for duplicate AE entries

check_ae_fatal()

Check for death variable consistency when AEOUT=="FATAL"

check_ae_withdr_ds_discon()

Check if an AE leading to drug being withdrawn is reflected in DS

check_ce_missing_month()

Check for clinical events dates with year and day known but month unknown

check_cm_cmdecod()

Check for missing CMDECOD values

check_cm_cmindc()

Check for concomitant medication indication with text string "PROPHYL" when not given for prophylaxis

check_cm_cmlat()

Check if ocular concomitant medication has laterality missing or laterality field is populated but route is not eye-related.

check_cm_cmlat_prior_ocular()

Check if ocular concomitant medication has laterality missing for specific "PRIOR OCULAR THERAPIES AND TREATMENTS" (or similar names) CRF page.

check_cm_missing_month()

Check for conmed dates with year and day known but month unknown

check_dd_ae_aedthdtc_ds_dsstdtc()

Check if death date is the same in AE and DS domains

check_dd_ae_aeout_aedthdtc()

Check if there is a death date and AEOUT='FATAL' agreement

check_dd_death_date()

Check if patient with Death due to AE also has Death record in DS

check_dm_actarm_arm()

Check DM where ARM is not equal to ACTARM

check_dm_ae_ds_death()

Check if death reported in DM then death indicator also present in DS or AE

check_dm_age_missing()

Check for patients with suspicious age values

check_dm_armcd()

Check for missing ARM or ARMCD values in DM

check_dm_dthfl_dthdtc()

Check that when DM.DTHFL is Y, DM.DTHDTC does not have a missing value, and vice versa

check_dm_usubjid_ae_usubjid()

Check patients in the DM dataset who do not have records in the AE dataset

check_dm_usubjid_dup()

Check duplicate patient records in DM based on USUBJID

check_ds_ae_discon()

Check for treatment discontinuation consistency between DS and AE

check_ds_dsdecod_death()

Check for study discontinuation record if death indicated

check_ds_dsdecod_dsstdtc()

Check DS with death record but no death date

check_ds_dsscat()

Check for patients with more than one study discontinuation records

check_ds_dsterm_death_due_to()

Check missing cause of death information in DS

check_ds_duplicate_randomization()

Check for duplicate randomization records for a patient

check_ds_ex_after_discon()

Check for patients who had Start/End date of treatment after study discontinuation date

check_ds_multdeath_dsstdtc()

Check DS with multiple death records with death dates, where death dates do not match

check_ds_sc_strat()

Check if randomized patients are missing stratification factor data

check_dv_ae_aedecod_covid()

Check for consistency between DV and AE for COVID-19 events

check_dv_covid()

Check for consistency in COVID-19 DV variables, DVREAS and DVEPRELI

check_ec_sc_lat()

Check if Study Drug is not administered in the Study Eye

check_eg_egdtc_visit_ordinal_error()

Check that all ECG datetimes are earlier than last visit's (possible datetime data entry error)

check_ex_dup()

Check for duplicate EX records

check_ex_exdose_exoccur()

Check for Missing EXDOSE.

check_ex_exdose_pos_exoccur_no()

Check for EXDOSE>0 When EXOCCUR is not "Y"

check_ex_exdosu()

Check for missing EXDOSU records

check_ex_exoccur_exdose_exstdtc()

Check for Invalid EXDOSE (Dose per Administration) and Missing/Incomplete EXSTDTC (Start Date) Values for valid exposures

check_ex_exoccur_mis_exdose_nonmis()

Check for missing EXOCCUR but EXDOSE not missing

check_ex_exstdtc_after_dd()

Check for EX dates occurring after death date

check_ex_exstdtc_after_exendtc()

Check that all exposure start dates are on or before exposure end dates

check_ex_exstdtc_visit_ordinal_error()

Check that all EX start dates are earlier than last visit's (possible datetime data entry error)

check_ex_extrt_exoccur()

Check for EX records where EXTRT is missing

check_ex_infusion_exstdtc_exendtc()

Check that an infusion drug has same start/end exposure dates, also including missing start/end dates

check_ex_visit()

Check for missing EX.VISIT

check_lb_lbdtc_after_dd()

Check for LB dates occurring after death date

check_lb_lbdtc_visit_ordinal_error()

Check that all LB dates are duplicated or earlier than last visit's (possible datetime data entry error)

check_lb_lbstnrlo_lbstnrhi()

Check for missing lab reference ranges (LBSTNRLO, LBSTNRHI)

check_lb_lbstresc_char()

Check LBORRES/LBSTRESC populated with number beginning with character '>' or '<', which will yield missing AVAL in ADaM and records will be omitted in analyses such as Hy's Law

check_lb_lbstresn_missing()

Check missing standard lab values (LBSTRESN/LBSTRESC)

check_lb_lbstresu()

Check for missing lab units (LBSTRESU)

check_lb_missing_month()

Check for lab dates with year and day known but month unknown

check_mh_missing_month()

Check for MH dates with year and day known but month unknown

check_mi_mispec()

Check for missing values in the MISPEC variable

check_oe_bcva_1m_late_early_tot()

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

check_oe_bcva_4m_late_early_tot()

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

check_oe_bcva_4m_vs_1m_req()

Check if 1m BCVA test is completed per BCVA 4m result

check_oe_bcva_tot_mismatch()

Check mismatch between Derived BCVA Total Score & Total BCVA Score from Data

check_oe_sc_lat_count_fingers()

Check if Post Treatment Count Fingers in Study Eye laterality does not match with Subject Characteristics Study Eye laterality

check_pr_missing_month()

Check for procedure dates with year and day known but month unknown

check_pr_prlat()

Check if ocular procedures/surgeries has laterality missing for CRF pages which contain the word "OCULAR" (and not "NON-OCULAR").

check_qs_dup()

Check for multiple dates at the same visit in QS

check_qs_qsdtc_after_dd()

Check for QS dates occurring after death date

check_qs_qsdtc_visit_ordinal_error()

Check that all QS dates are duplicated or earlier than last visit's (possible datetime data entry error)

check_qs_qsstat_qsreasnd()

Check to confirm that there is a reason for a questionnaire being marked as not done

check_qs_qsstat_qsstresc()

Check for non-missing QSSTRESC if QSSTAT is NOT DONE

check_rs_rscat_rsscat()

Check for patients with populated RSSCAT but missing RSCAT.

check_rs_rsdtc_across_visit()

Check RS records where the same date occurs across multiple visits

check_rs_rsdtc_visit()

Check missing RSDTC and VISIT

check_rs_rsdtc_visit_ordinal_error()

Check that all RS dates for INV Overall Response are duplicated or earlier than last visit's (possible date entry error)

check_sc_dm_eligcrit()

Check SC Eye Meeting Eligibility Criteria assignments among DM patients

check_sc_dm_seyeselc()

Check SC Study Eye Selection assignments among DM patients

check_ss_ssdtc_alive_dm()

Check non-missing last ALIVE status date in SS is before than death date in DM

check_ss_ssdtc_dead_ds()

Check non-missing DEAD status date in SS and non-missing according DS record with death date where status date is greater or equal to death date

check_ss_ssdtc_dead_dthdtc()

Check non-missing DEAD status date in SS and an according DM record with death date where status date is greater or equal to death date

check_ss_ssstat_ssorres()

Check for non-missing SSORRES if SSSTAT is NOT DONE

check_tr_dup()

Check for duplicate TR records

check_tr_trdtc_across_visit()

Check TR Longest Diameter Records where the same date occurs across multiple visits

check_tr_trdtc_visit_ordinal_error()

Check that all TR dates by INV are duplicated or earlier than last visit's (possible date entry error)

check_tr_trstresn_ldiam()

Check for TR records with missing TRSTRESN for Longest Diameter (LDIAM)

check_ts_aedict()

Check for missing MedDRA version in TS

check_ts_cmdict()

Check for missing WHODrug version in TS

check_ts_sstdtc_ds_consent()

Check for missing SSTDTC (Study Start Date) in TS

check_tu_rs_new_lesions()

Check for consistency between new lesions and overall PD response

check_tu_tudtc()

Check for missing TUDTC values

check_tu_tudtc_across_visit()

Check TU Records where the same date occurs across multiple visits

check_tu_tudtc_visit_ordinal_error()

Check that all TU dates are duplicated or earlier than last visit's (possible datetime data entry error)

check_tu_tuloc_missing()

Check for missing TULOC values

check_vs_height()

Check for missing height values

check_vs_sbp_lt_dbp()

Check that DBP is not higher than SBP in VS

check_vs_vsdtc_after_dd()

Check for VS dates occurring after death date

Data check utility functions

Helper functions for data checks.

pass()

Pass object

fail()

Fail object

is_sas_na()

Check if the elements could be of any SAS missing data variant

`%lacks_all%`

Check if data frame is missing any of the specified variables

`%lacks_any%`

Check if data frame has at least one variable from a set of specified variables

lacks_msg()

Check data frame for mandatory variables and specify which are missing in message

`%has_all%`

Check if data frame has all specified variables

`%has_any%`

Check if data frame has at least one of the specified variables

impute_day01()

Add day of "01" to dates that are in the format of "yyyy-mm"

dtc_dupl_early()

Check if start dates are duplicated or earlier than prior visit date

missing_month()

Function to check if month is missing while year and day are non-missing (i.e. would be in the format of "yyyy—dd")

Metadata

Datasets used with the package.

sdtmchecksmeta

Metadata for sdtmchecks

nickname

Nickname for package version

Example programs for running one or more data checks

diff_reports()

Create a sdtmchecks list object with column indicating whether the issue was previously seen

report_to_xlsx()

Save report as an xlsx file

run_all_checks()

Run all data checks in sdtmchecks package using parallel processing

run_check()

Run a single check in sdtmchecks package

Samples for using the package.

convert_var_to_ascii()

Remove non-ASCII characters from reported term in order for Pandoc to create PDF file

create_R_script()

Create .R file with sdtmchecks function calls

truncate_var_strings()

Utility function to truncate data in var_name

Company-specific utility functions

Helper functions for data checks tailored to company-specific data inputs.

roche_derive_rave_row()

Utility function to obtain Rave form name and row number