Validating an FDA study-data package

What this package is

openstudyval is an independent R validator for a study-data folder prepared for an FDA submission. It covers:

It is not Pinnacle 21, and a clean report is not an FDA certification.

Run the bundled example

library(openstudyval)
report <- validate_submission(example_study("sdtm"), standard = "SDTM")
summary(report)
#> Issue summary (SDTM)
#>   rule_id severity     domains records
#>   SDTM003   Reject          TS       1
#>   SDTM010    Error          DM       1
#>   SDTM011    Error          DM       1
#>   SDTM012    Error          AE       1
#>   SDTM013    Error          AE       1
#>   SDTM022    Error          DM       1
#>   SDTM024    Error          AE       1
#>   SDTM025    Error          AE       1
#>  TRC1736D    Error  define.xml       1
#>   FDAB008  Warning          EX       1
#>   SDTM002  Warning TA,TE,TI,TV       4
#>   SDTM033  Warning          AE       1
#>                                                                                                        message
#>     TS does not contain TSPARMCD = SSTDTC. FDA technical-rejection criterion 1734 requires a study start date.
#>                                                                  DOMAIN value does not match the dataset name.
#>                                                                             USUBJID should begin with STUDYID.
#>                                                                                  USUBJID is not present in DM.
#>                                                                            AESEQ is not unique within USUBJID.
#>                                               SEX is not in the core controlled terminology. Allowed: M, F, U.
#>                                                            AESER must be Y or N when populated. Allowed: Y, N.
#>                                        AESEV is not MILD / MODERATE / SEVERE. Allowed: MILD, MODERATE, SEVERE.
#>            define.xml was not found beside the datasets. FDA expects a define.xml for standardized study data.
#>  Exposure date/time falls outside the DM reference start/end window (public FDA business-rule intent FDAB008).
#>                          Trial Design dataset missing. FDA TCG expects TA, TE, TI, TS, and TV when applicable.
#>                                                Date/time variable is not a complete or partial ISO 8601 value.

Write the HTML report next to your study:

write_validation_report(report, "validation-report.html")

Add a study-specific rule

extra <- data.frame(
  rule_id = "CUST_ARM",
  publisher = "sponsor",
  standard = "SDTM",
  domains = "DM",
  severity = "Error",
  check = "codelist",
  argument = "ARMCD=A|B",
  message = "ARMCD is not in the study arm codelist.",
  guidance = "Protocol section 6",
  stringsAsFactors = FALSE
)
study <- read_study_data(example_study("sdtm"))
custom <- validate_datasets(study, standard = "SDTM", rules = extra)
"CUST_ARM" %in% custom$issues$rule_id
#> [1] FALSE

Full MedDRA and WHODrug dictionaries are licensed and are not bundled. Pass permitted terms in ct or as the right-hand side of a codelist rule.