Milestones
List view
Eventually we want to have a simple class with simple API which will have a proper shiny characteristics. The biggest pittfals are: - Too many classes nested within - TealData, TealDataConnector, TealDatasetConnector, TealConnection, TealDataset. - Calling a shiny modules is too complicated which requires going down from TealData -> TealDataset/Connector - All datasets codes are evaluated in separated environments. System which handles relationships between datasets is also too complicated (we should evaluate in a shared environment) ``` TealData$initialize(..., join_keys) { private$join_keys <- join_keys } teal_data(..., join_keys = join_keys()) { ... TealData$new(..., join_keys) } cdisc_data(..., join_keys = join_keys) { join_keys$set_parents( ... ), join_keys$update_keys_given_parents() #then join_keys has the "correct CDISC information" TealData$new(..., join_keys) } What about mutate_join_keys() ?? -> move into join_keys()$mutate_keys() ? and can call from TealData TealData$get_tdata() <- will have join_keys inside which has cdisc information (parents + correctly set merge keys) datasets <- init_filtered_data.tdata(TealData$get_tdata(), is_cdisc = TealData$join_keys()$parents() != NULL) deprecate CDISCTealData$initialize() ------------------------------------------ 3) + 4) in teal.data #120 1) + 2) + 5) in teal.data #121 1) Move tdata out of teal into teal.data (PR in teal) 2) In teal.slice add init_filtered_data.tdata (deprecate other init_filtered_data) which has parent information in join_keys (PR in teal.slce) 3) Deprecate CDSICTealData, move mutate join_keys into join_keys and call from TealData 4) Update wrappers as above with the extra functions in join_keys shown above 5) TealData$get_tdata() which should create tdata from pulled/(nonDDL) datasets and takes join_keys() ```
No due date•4/4 issues closedJoinKeys is a R6 class which is not user friendly. JoinKeys should be a simple list or S4 class acting like a list. Reasons: - ~~join keys are used also in other packages (teal.slice, teal.transform) and they are immediately converted into list after leaving TealData.~~ - it's hard to easily subset keys. - JoinKeys + JoinKey classes is little overcomplicated structure - we need to include CDISC parent information in keys - Foreign keys are primary keys by default. So no need to specify primary keys extra when join keys are set ``` Now: jk = join_keys( join_key(...), join_key(...), join_key("ADRS", "ADSL", c("...", )) ) After these prs jk <- join_keys() jk$set_parent(datasets = c("ADTTE", "ADQS", "ADRS"), parent ="ADSL") jk$update_keys_given_parents() After #78 improve join_keys constructor to remove lines set_parent and update_keys_given_parent if called outside of cdisc_data my_tdata( data = list(ADTTE, ADSL, ADQS, ADRS), join_keys = jk ) tm_outliers_srv() my_tdata init_filtered_data(my_tdata) ```
No due date•3/3 issues closed