Skip to contents

Trial concept calculated: type of internal control. ICH E10 lists as types of control: placebo concurrent control, no-treatment concurrent control, dose-response concurrent control, active (positive) concurrent control, external (including historical) control, multiple control groups. Dose-controlled trials are currently not identified. External (including historical) controls are so far not identified in specific register fields. Cross-over designs, where identifiable, have active controls.

Usage

f.controlType(df = NULL)

Arguments

df

data frame such as from dbGetFieldsIntoDf. If `NULL`, prints fields needed in `df` for calculating this trial concept, which can be used with dbGetFieldsIntoDf.

Value

data frame with columns `_id` and `.controlType`, which is a factor with levels `none`, `no-treatment`, `placebo`, `active`, `placebo+active` and `other`.

Examples

# fields needed
f.controlType()
#> $euctr
#> [1] "e81_controlled"                            
#> [2] "e816_cross_over"                           
#> [3] "e817_other"                                
#> [4] "e8171_other_trial_design_description"      
#> [5] "e822_placebo"                              
#> [6] "e823_other"                                
#> [7] "e8231_comparator_description"              
#> [8] "e824_number_of_treatment_arms_in_the_trial"
#> 
#> $ctgov
#> [1] "arm_group.arm_group_type"
#> 
#> $ctgov2
#> [1] "protocolSection.designModule.designInfo.interventionModel"
#> [2] "protocolSection.armsInterventionsModule.armGroups.type"   
#> 
#> $isrctn
#> [1] "trialDesign.studyDesign"        "trialDesign.primaryStudyDesign"
#> 
#> $ctis
#> [1] "authorizedPartI.productRoleGroupInfos.productRoleName"                      
#> [2] "authorizedApplication.authorizedPartI.productRoleGroupInfos.productRoleName"
#> 

# apply trial concept when creating data frame
dbc <- nodbi::src_sqlite(
  dbname = system.file("extdata", "demo.sqlite", package = "ctrdata"),
  collection = "my_trials", flags = RSQLite::SQLITE_RO)
trialsDf <- dbGetFieldsIntoDf(
  field = "ctrname",
  calculate = "f.controlType",
  con = dbc)
#> Querying database (16 fields)...
trialsDf
#>                  _id ctrname .controlType
#> 1           12949496  ISRCTN         none
#> 2           13281214  ISRCTN         none
#> 3           17473621  ISRCTN        other
#> 4  2012-003632-23-CZ   EUCTR         none
#> 5  2012-003632-23-SE   EUCTR         none
#> 6  2014-002606-20-PT   EUCTR         none
#> 7  2014-003556-31-GB   EUCTR         none
#> 8  2014-003556-31-SE   EUCTR         none
#> 9  2022-500244-37-00    CTIS      placebo
#> 10 2022-501142-30-00    CTIS       active
#> 11 2023-505613-24-00    CTIS         none
#> 12 2023-508143-51-01    CTIS         none
#> 13 2024-510663-34-00    CTIS         none
#> 14          20343063  ISRCTN      placebo
#> 15          61070850  ISRCTN        other
#> 16          76463425  ISRCTN        other
#> 17          80181452  ISRCTN      placebo
#> 18          88261002  ISRCTN      placebo
#> 19       NCT00617929  CTGOV2         none
#> 20       NCT01125800  CTGOV2         none
#> 21       NCT01483820  CTGOV2         none
#> 22       NCT01505608  CTGOV2       active
#> 23       NCT01592045  CTGOV2         none
#> 24       NCT02620761   CTGOV      placebo
#> 25       NCT03280147   CTGOV       active
#> 26       NCT03325439   CTGOV         none
#> 27       NCT03431558   CTGOV      placebo
#> 28       NCT03876704   CTGOV       active
#> 29       NCT04001712   CTGOV       active
#> 30       NCT04041765   CTGOV      placebo
#> 31       NCT05969327   CTGOV no-treatment