Skip to contents

Trial concept calculated: platform trial, research platform. As operational definition, at least one of these criteria is true: a. trial has "platform", "basket", "umbrella", "multi.?arm", "multi.?stage" or "master protocol" in its title or description (for ISRCTN, this is the only criterion; some trials in EUCTR lack data in English), b. trial has more than 2 active arms with different investigational medicines, after excluding comparator, auxiliary and placebo medicines (calculated with f.numTestArmsSubstances; not used for ISRCTN because it cannot be calculated precisely), c. trial more than 2 periods, after excluding safety run-in, screening, enrolling, extension and follow-up periods (for CTGOV and CTGOV2, this criterion requires results-related data). Requires that EUCTR results have been included in the collection, using ctrLoadQueryIntoDb(queryterm = ..., euctrresults = TRUE, con = ...). Requires packages dplyr and stringdist to be installed; stringdist is used for evaluating names of active substances, which are considered similar when the similarity is 0.8 or higher.

Usage

f.likelyPlatformTrial(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 `.likelyPlatformTrial`, a logical, and `.idsRelatedTrials`, a list of identifiers of trials calculated to be related (e.g., based on CTIS' `associatedClinicalTrials` and otherwise on additional identifiers in the record).

Details

Publication references considered: E-PEARL WP2 2020 https://tinyurl.com/eupearld21terminology (which did not include all basket trials in the definition, as done here) Williams RJ et al. 2022 https://doi.org/10.1136/bmj-2021-067745

Examples

# fields needed
f.likelyPlatformTrial()
#> [[1]]
#> [1] "ctrname"
#> 
#> $euctr
#> [1] "a3_full_title_of_the_trial"                                            
#> [2] "trialInformation.fullTitle"                                            
#> [3] "subjectDisposition.postAssignmentPeriods.postAssignmentPeriod.title"   
#> [4] "e824_number_of_treatment_arms_in_the_trial"                            
#> [5] "e81_controlled"                                                        
#> [6] "subjectDisposition.postAssignmentPeriods.postAssignmentPeriod.arms.arm"
#> 
#> $ctgov
#> [1] "official_title"                                            
#> [2] "detailed_description.textblock"                            
#> [3] "clinical_results.participant_flow.period_list.period.title"
#> [4] "arm_group"                                                 
#> 
#> $ctgov2
#> [1] "protocolSection.identificationModule.officialTitle"   
#> [2] "protocolSection.descriptionModule.detailedDescription"
#> [3] "resultsSection.participantFlowModule.periods.title"   
#> [4] "protocolSection.armsInterventionsModule.armGroups"    
#> 
#> $isrctn
#> [1] "trialDescription.title"                     
#> [2] "trialDescription.scientificTitle"           
#> [3] "interventions.intervention.interventionType"
#> [4] "trialDesign.secondaryStudyDesign"           
#> [5] "interventions.intervention.interventionType"
#> [6] "interventions.intervention.drugNames"       
#> 
#> $ctis
#>  [1] "title"                                                                                                 
#>  [2] "applications.fullTitle"                                                                                
#>  [3] "authorizedPartI.trialDetails.clinicalTrialIdentifiers.fullTitle"                                       
#>  [4] "authorizedPartI.trialDetails.clinicalTrialIdentifiers.publicTitle"                                     
#>  [5] "authorizedPartI.trialDetails.protocolInformation.studyDesign.periodDetails.title"                      
#>  [6] "authorizedPartI.trialDetails.protocolInformation.studyDesign.periodDetails.armDetails.title"           
#>  [7] "authorizedPartI.trialDetails.associatedClinicalTrials.parentClinicalTrialId"                           
#>  [8] "authorizedPartI.trialDetails.associatedClinicalTrials.ctNumber"                                        
#>  [9] "authorizedPartsII.mscInfo.clinicalTrialId"                                                             
#> [10] "authorizedApplication.authorizedPartI.trialDetails.clinicalTrialIdentifiers.fullTitle"                 
#> [11] "authorizedApplication.authorizedPartI.trialDetails.clinicalTrialIdentifiers.publicTitle"               
#> [12] "authorizedApplication.authorizedPartI.trialDetails.protocolInformation.studyDesign.periodDetails.title"
#> [13] "authorizedApplication.authorizedPartI.trialDetails.associatedClinicalTrials.parentClinicalTrialId"     
#> [14] "authorizedApplication.authorizedPartI.trialDetails.associatedClinicalTrials.ctNumber"                  
#> [15] "authorizedApplication.authorizedPartsII.mscInfo.clinicalTrialId"                                       
#> [16] "authorizedPartI.productRoleGroupInfos"                                                                 
#> [17] "authorizedApplication.authorizedPartI.productRoleGroupInfos"                                           
#> 

if (FALSE) { # \dontrun{

# 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(
  calculate = "f.likelyPlatformTrial",
  con = dbc)
} # }