Skip to content

feat(picks): migrate main (v2)#1470

Open
averissimo wants to merge 584 commits into
mainfrom
279-interactive_variables@main
Open

feat(picks): migrate main (v2)#1470
averissimo wants to merge 584 commits into
mainfrom
279-interactive_variables@main

Conversation

@averissimo

@averissimo averissimo commented Mar 12, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@averissimo averissimo changed the title pick picks for tm_a_mmrm module Mar 13, 2026
@m7pr

m7pr commented Mar 13, 2026

Copy link
Copy Markdown
Contributor

@averissimo maybe change the base of the PR to redesign_extraction@main branch?

@averissimo

Copy link
Copy Markdown
Contributor Author

@m7pr Last time I checked that branch was very old and had some code that we no longer use. It has since been updated, but it doesn't use the S3 dispatch method.

We can cherry pick the code, but I think we should move away from that.

Should we create a feature branch to use until teal.picks is merged?

@m7pr

m7pr commented Mar 16, 2026

Copy link
Copy Markdown
Contributor

@averissimo I'll use this branch as the feature branch : )

Comment thread R/tm_a_mmrm_picks.R Outdated
Comment thread DESCRIPTION Outdated
@m7pr

m7pr commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

making it ready for a review, so we can run pipelines

@m7pr
m7pr marked this pull request as ready for review April 2, 2026 07:38
@m7pr m7pr self-assigned this Apr 2, 2026
Comment thread R/tm_a_mmrm_picks.R Outdated
@m7pr

m7pr commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

@averissimo if you have some time, any chance you can extend shinytest2 tests?

@m7pr

m7pr commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

EDIT: fixed with

vbumping teal version at the Remotes branch during insightsengineering/teal@4ee12ce


Getting

https://github.com/insightsengineering/teal.modules.clinical/actions/runs/23892417284/job/69668749556?pr=1470#step:18:2390

Creating lockfile '.github/pkg.lock'Loading metadata databaseLoading metadata database ... doneCreating lockfile '.github/pkg.lock'Creating lockfile '.github/pkg.lock' [6.4s]
  
  Error: 
  ! error in pak subprocess
  Caused by error: 
  ! Could not solve package dependencies:
  * deps::.: Can't install dependency insightsengineering/teal@redesign_extraction@main (>= 1.1.0.9029)
  * any::sessioninfo: dependency conflict
  ---
  Backtrace:
  1. pak::lockfile_create(c(deps, extra_deps), lockfile = ".github/pkg.lock", …
  2. pak:::remote(function(...) { …
  3. err$throw(res$error)
  ---
  Subprocess backtrace:
  1. base::withCallingHandlers(cli_message = function(msg) { …
  2. get("lockfile_create_internal", asNamespace("pak"))(...)
  3. prop$stop_for_solution_error()
  4. private$plan$stop_for_solve_error()
  5. pkgdepends:::pkgplan_stop_for_solve_error(self, private)
  6. base::throw(new_error("Could not solve package dependencies:\n", msg, …
  7. | base::signalCondition(cond)
  8. global (function (e) …
  Execution halted
  Error: Process completed with exit code 1.

Comment thread R/tm_a_mmrm_picks.R Outdated
Comment thread R/tm_a_mmrm.R Outdated
Comment thread R/tm_a_mmrm_picks.R Outdated
Comment thread R/tm_a_mmrm.R Outdated
Comment thread R/tm_a_mmrm.R Outdated
@github-actions

github-actions Bot commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

Unit Tests Summary

    1 files     74 suites   1h 53m 12s ⏱️
  795 tests   788 ✅ 7 💤 0 ❌
2 598 runs  2 591 ✅ 7 💤 0 ❌

Results for commit b681610.

♻️ This comment has been updated with latest results.

Comment thread R/tm_a_mmrm.R Outdated
@github-actions

github-actions Bot commented Apr 2, 2026

Copy link
Copy Markdown
Contributor

Unit Test Performance Difference

Test suite performance difference
Test Suite $Status$ Time on main $±Time$ $±Tests$ $±Skipped$ $±Failures$ $±Errors$
shinytest2-teal_picks_playground 👶 $+0.61$ $+3$ $+3$ $0$ $0$
shinytest2-tm_a_gee 💔 $0.25$ $+2.93$ $+34$ $0$ $0$ $0$
shinytest2-tm_a_mmrm 💔 $0.69$ $+8.91$ $+48$ $0$ $0$ $0$
shinytest2-tm_g_barchart_simple 💔 $0.34$ $+4.17$ $+92$ $0$ $0$ $0$
shinytest2-tm_g_ci 💔 $0.21$ $+1.26$ $+1$ $+1$ $0$ $0$
shinytest2-tm_g_forest_rsp 💔 $0.26$ $+3.40$ $+20$ $+1$ $0$ $0$
shinytest2-tm_g_forest_tte 💔 $0.10$ $+2.14$ $+7$ $+7$ $0$ $0$
shinytest2-tm_g_ipp 💔 $0.21$ $+3.10$ $+56$ $0$ $0$ $0$
shinytest2-tm_g_km 💔 $0.41$ $+2.58$ $0$ $0$ $0$ $0$
shinytest2-tm_g_lineplot 💔 $0.16$ $+1.28$ $+10$ $0$ $0$ $0$
shinytest2-tm_g_pp_adverse_events 💔 $0.25$ $+1.65$ $0$ $0$ $0$ $0$
shinytest2-tm_g_pp_patient_timeline 💔 $0.38$ $+8.71$ $+260$ $0$ $0$ $0$
shinytest2-tm_g_pp_therapy 💚 $328.41$ $-320.93$ $-36$ $+23$ $0$ $0$
shinytest2-tm_t_abnormality 💔 $0.13$ $+1.30$ $+9$ $0$ $0$ $0$
shinytest2-tm_t_abnormality_by_worst_grade 💔 $0.11$ $+1.00$ $0$ $0$ $0$ $0$
shinytest2-tm_t_ancova 💔 $0.18$ $+1.04$ $0$ $0$ $0$ $0$
shinytest2-tm_t_binary_outcome 💔 $0.15$ $+1.26$ $0$ $0$ $0$ $0$
shinytest2-tm_t_events_by_grade 💔 $0.14$ $+1.63$ $0$ $0$ $0$ $0$
shinytest2-tm_t_events_summary 💔 $0.11$ $+2.32$ $0$ $0$ $0$ $0$
shinytest2-tm_t_exposure 💔 $0.14$ $+1.86$ $0$ $0$ $0$ $0$
shinytest2-tm_t_pp_laboratory 👶 $+1.52$ $+16$ $+16$ $0$ $0$
shinytest2-tm_t_pp_prior_medication 💔 $0.16$ $+1.43$ $0$ $0$ $0$ $0$
shinytest2-tm_t_smq 💔 $0.11$ $+1.37$ $0$ $0$ $0$ $0$
tm_t_pp_laboratory 👶 $+16.31$ $+10$ $0$ $0$ $0$
utils_picks 👶 $+0.38$ $+57$ $0$ $0$ $0$
Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
examples 👶 $+0.06$ example_arm_bucket_values.Rd
examples 👶 $+0.03$ example_arm_ref_comp_buckets_validator.Rd
examples 👶 $+0.01$ example_arm_ref_comp_observer_picks.Rd
examples 👶 $+0.01$ example_paramcd_title_from_anl.Rd
shinytest2-teal_picks_playground 👶 $+0.19$ e2e_teal_picks_playground_app_starts_without_Shiny_errors.
shinytest2-teal_picks_playground 👶 $+0.32$ e2e_teal_picks_playground_get_teal_picks_slot_reads_datasets_variables.
shinytest2-teal_picks_playground 👶 $+0.10$ e2e_teal_picks_playground_set_teal_picks_slot_updates_arm_var_variables.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Click_on_fit_model_shows_table_for_default_selection
shinytest2-tm_a_mmrm 💀 $0.02$ $-0.02$ e2e_tm_a_mmrm_Click_on_fit_model_shows_table_for_default_selection.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 👶 $+0.21$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_arm_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_aval_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_id_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.02$ $-0.02$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.02$ $-0.02$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_arm_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 💀 $0.02$ $-0.02$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_aval_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_id_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Deselection_of_visit_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Deselection_visit_var_throws_validation_error_in_method_t_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Function_g_mmrm_diagnostic_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_plots
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Function_g_mmrm_diagnostic_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_plots.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Function_g_mmrm_lsmeans_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_plots
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Function_g_mmrm_lsmeans_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_plots.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Function_t_mmrm_lsmeans_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_tables
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Function_t_mmrm_lsmeans_selection_shows_output_settings_changing_settings_throws_no_validation_errors_and_verify_visibility_of_generated_tables.
shinytest2-tm_a_mmrm 👶 $+0.21$ e2e_tm_a_mmrm_Module_initializes_in_teal_without_errors_and_displays_a_message_to_click_Fit_Model_
shinytest2-tm_a_mmrm 💀 $0.02$ $-0.02$ e2e_tm_a_mmrm_Module_initializes_in_teal_without_errors_and_displays_a_message_to_click_Fit_Model_.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_g_mmrm_diagnostic
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_g_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_g_mmrm_lsmeans
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_g_mmrm_lsmeans.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_cov
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_cov.
shinytest2-tm_a_mmrm 👶 $+0.20$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_diagnostic
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_diagnostic.
shinytest2-tm_a_mmrm 👶 $+0.19$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_fixed
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_fixed.
shinytest2-tm_a_mmrm 👶 $+0.21$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_lsmeans
shinytest2-tm_a_mmrm 💀 $0.01$ $-0.01$ e2e_tm_a_mmrm_Validate_output_on_different_selection_on_method_t_mmrm_lsmeans.
shinytest2-tm_g_barchart_simple 👶 $+0.21$ e2e_tm_g_barchart_simple_Starts_with_specified_label_and_default_encoding_selections.
shinytest2-tm_g_barchart_simple 💀 $0.01$ $-0.01$ e2e_tm_g_barchart_simple_Starts_with_specified_label_id_var_arm_var_visit_var_paramcd_cov_var_conf_level_and_conf_struct.
shinytest2-tm_g_ci 👶 $+0.10$ e2e_tm_g_ci_Changing_confidence_level_updates_plot.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Changing_statistic_updates_plot.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Deselecting_AVISIT_filter_shows_validation_error.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Deselecting_AVISIT_filter_value_throws_validation_error.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Deselecting_PARAMCD_filter_shows_validation_error.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Deselecting_PARAMCD_filter_value_throws_validation_error.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Deselecting_color_column_changes_plot_output_and_doesn_t_throw_validation_error.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Deselecting_color_column_shows_validation_error.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Deselecting_x_var_column_shows_validation_error.
shinytest2-tm_g_ci 💀 $0.02$ $-0.02$ e2e_tm_g_ci_Deselecting_x_var_column_throws_validation_error.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Deselecting_y_var_column_shows_validation_error.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Deselecting_y_var_column_throws_validation_error.
shinytest2-tm_g_ci 👶 $+0.12$ e2e_tm_g_ci_Module_initializes_and_produces_plot_output.
shinytest2-tm_g_ci 💀 $0.02$ $-0.02$ e2e_tm_g_ci_Module_initializes_in_teal_without_errors_and_produces_plot_output.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Module_initializes_with_specified_label_x_var_y_var_ADLB_filters_color_conf_level_and_stat.
shinytest2-tm_g_ci 👶 $+0.10$ e2e_tm_g_ci_Module_matches_label_picks_exports_conf_level_and_stat.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_AVISIT_filter_value_doesn_t_throw_validation_errors.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Selecting_AVISIT_filter_value_updates_plot.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_PARAMCD_filter_value_changes_plot_and_doesn_t_throw_validation_errors.
shinytest2-tm_g_ci 👶 $+0.10$ e2e_tm_g_ci_Selecting_PARAMCD_filter_value_updates_plot.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_color_column_changes_plot_output_and_doesn_t_throw_validation_errors.
shinytest2-tm_g_ci 👶 $+0.10$ e2e_tm_g_ci_Selecting_color_column_updates_plot.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_confidence_interval_value_changes_plot_and_doesn_t_throw_any_errors.
shinytest2-tm_g_ci 💀 $0.02$ $-0.02$ e2e_tm_g_ci_Selecting_statistic_to_use_changes_a_plot_and_doesn_t_throw_any_errors.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_x_var_column_changes_plot_and_doesn_t_throw_validation_errors.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Selecting_x_var_column_updates_plot.
shinytest2-tm_g_ci 💀 $0.01$ $-0.01$ e2e_tm_g_ci_Selecting_y_var_column_changes_plot_and_doesn_t_throw_validation_errors.
shinytest2-tm_g_ci 👶 $+0.09$ e2e_tm_g_ci_Selecting_y_var_column_updates_plot.
shinytest2-tm_g_ci 👶 $+0.10$ e2e_tm_g_ci_Uses_PARAMCD_and_AVISIT_module_arguments_in_picks_mode.
shinytest2-tm_g_forest_rsp 💀 $0.01$ $-0.01$ e2e_tm_g_forest_rsp_Deselecting_conf_level_or_selecting_outside_the_range_of_0_1_throws_validation_error.
shinytest2-tm_g_forest_rsp 👶 $+0.19$ e2e_tm_g_forest_rsp_Deselecting_conf_level_throws_validation_error.
shinytest2-tm_g_forest_rsp 👶 $+0.19$ e2e_tm_g_forest_rsp_Selecting_conf_level_outside_range_0_1_throws_validation_error.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Deselecting_strata_var_changes_plot_and_does_not_throw_validation_errors.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Deselecting_subgroup_var_changes_plot_and_does_not_throw_validation_errors.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Deselection_of_arm_var_throws_validation_error.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Deselection_of_conf_level_throws_validation_error.
shinytest2-tm_g_forest_tte 💀 $0.02$ $-0.02$ e2e_tm_g_forest_tte_Deselection_of_paramcd_var_throws_validation_error.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Selecting_a_non_factor_column_in_subgroup_var_throws_validation_error.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Selecting_conf_level_outside_range_0_1_throws_validation_error.
shinytest2-tm_g_forest_tte 👶 $+0.17$ e2e_tm_g_forest_tte_Selection_of_strata_var_changes_the_element_and_does_not_throw_validation_errors.
shinytest2-tm_g_forest_tte 👶 $+0.16$ e2e_tm_g_forest_tte_Selection_of_subgroup_var_changes_the_element_and_does_not_throw_validation_errors.
shinytest2-tm_g_km 💀 $0.01$ $-0.01$ e2e_tm_g_km_Changing_facet_var_changes_the_plot_without_errors.
shinytest2-tm_g_km 👶 $+0.11$ e2e_tm_g_km_Changing_facet_var_updates_the_encoding_without_errors.
shinytest2-tm_g_lineplot 💀 $0.01$ $-0.01$ e2e_tm_g_lineplot_Deselecting_param_throws_validation_error.
shinytest2-tm_g_lineplot 👶 $+0.13$ e2e_tm_g_lineplot_Deselecting_paramcd_throws_validation_error.
shinytest2-tm_g_lineplot 💀 $0.01$ $-0.01$ e2e_tm_g_lineplot_Starts_with_specified_label_param_group_var_y_x_mid_interval_incl_screen_plot_settings_and_table_settings.
shinytest2-tm_g_lineplot 👶 $+0.15$ e2e_tm_g_lineplot_Starts_with_specified_label_paramcd_group_var_y_x_mid_interval_incl_screen_plot_settings_and_table_settings.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.36$ e2e_tm_g_pp_patient_timeline_Deselecting_aerelday_end_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.02$ $-0.02$ e2e_tm_g_pp_patient_timeline_Deselecting_aerelday_end_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.35$ e2e_tm_g_pp_patient_timeline_Deselecting_aerelday_start_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_aerelday_start_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.37$ e2e_tm_g_pp_patient_timeline_Deselecting_aetime_end_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_aetime_end_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.34$ e2e_tm_g_pp_patient_timeline_Deselecting_aetime_start_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_aetime_start_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.36$ e2e_tm_g_pp_patient_timeline_Deselecting_dsrelday_end_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_dsrelday_end_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.35$ e2e_tm_g_pp_patient_timeline_Deselecting_dsrelday_start_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_dsrelday_start_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.36$ e2e_tm_g_pp_patient_timeline_Deselecting_dstime_end_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_dstime_end_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.35$ e2e_tm_g_pp_patient_timeline_Deselecting_dstime_start_changes_plot_and_doesn_t_throw_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Deselecting_dstime_start_throws_validation_error.
shinytest2-tm_g_pp_patient_timeline 💀 $0.01$ $-0.01$ e2e_tm_g_pp_patient_timeline_Starts_with_specified_label_patient_id_cmdecod_aeterm_aetime_start_aetime_end_dstime_start_dstime_end_aerelday_start_aerelday_end_dsrelday_start_dsrelday_en.
shinytest2-tm_g_pp_patient_timeline 👶 $+0.37$ e2e_tm_g_pp_patient_timeline_Starts_with_specified_label_patient_id_cmdecod_aeterm_aetime_start_aetime_end_dstime_start_dstime_end_aerelday_start_aerelday_end_dsrelday_start_dsrelday_end.
shinytest2-tm_g_pp_therapy 💚 $14.40$ $-14.08$ e2e_tm_g_pp_therapy_Changing_font_size_changes_the_plot_and_does_not_throw_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $13.52$ $-13.20$ e2e_tm_g_pp_therapy_Deselection_of_atirel_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.46$ $-13.13$ e2e_tm_g_pp_therapy_Deselection_of_cmdecod_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.38$ $-13.06$ e2e_tm_g_pp_therapy_Deselection_of_cmdose_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.60$ $-13.28$ e2e_tm_g_pp_therapy_Deselection_of_cmdosfrq_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.55$ $-13.23$ e2e_tm_g_pp_therapy_Deselection_of_cmdosu_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $14.32$ $-13.98$ e2e_tm_g_pp_therapy_Deselection_of_cmendy_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.35$ $-13.03$ e2e_tm_g_pp_therapy_Deselection_of_cmindc_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.50$ $-13.18$ e2e_tm_g_pp_therapy_Deselection_of_cmroute_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.26$ $-12.94$ e2e_tm_g_pp_therapy_Deselection_of_cmstdy_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $13.28$ $-12.96$ e2e_tm_g_pp_therapy_Deselection_of_patient_id_throws_validation_error.
shinytest2-tm_g_pp_therapy 💚 $18.35$ $-18.03$ e2e_tm_g_pp_therapy_Module_initializes_in_teal_without_errors_and_produces_output.
shinytest2-tm_g_pp_therapy 💚 $14.69$ $-14.34$ e2e_tm_g_pp_therapy_Selection_of_atirel_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.92$ $-14.60$ e2e_tm_g_pp_therapy_Selection_of_cmdecod_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.71$ $-14.38$ e2e_tm_g_pp_therapy_Selection_of_cmdose_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.50$ $-14.18$ e2e_tm_g_pp_therapy_Selection_of_cmdosfrq_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.82$ $-14.50$ e2e_tm_g_pp_therapy_Selection_of_cmdosu_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.91$ $-14.60$ e2e_tm_g_pp_therapy_Selection_of_cmendy_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.47$ $-14.15$ e2e_tm_g_pp_therapy_Selection_of_cmindc_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.74$ $-14.42$ e2e_tm_g_pp_therapy_Selection_of_cmroute_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.71$ $-14.38$ e2e_tm_g_pp_therapy_Selection_of_cmstdy_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💚 $14.73$ $-14.41$ e2e_tm_g_pp_therapy_Selection_of_patient_id_changes_the_plot_and_table_without_any_validation_errors.
shinytest2-tm_g_pp_therapy 💀 $13.22$ $-13.22$ e2e_tm_g_pp_therapy_Starts_with_specified_label_paramcd_arm_var_buckets_paramcd_subgroup_var_strata_var_and_plot_settings.
shinytest2-tm_g_pp_therapy 👶 $+0.35$ e2e_tm_g_pp_therapy_Starts_with_specified_label_patient_id_atirel_cmdecod_cmindc_cmdose_cmtrt_cmdosu_cmroute_cmdosfrq_cmstdy_cmendy_and_plot_settings.
shinytest2-tm_t_coxreg 👶 $+0.11$ e2e_tm_t_coxreg_Deselection_of_all_covariates_clears_the_table_and_surfaces_a_validation_error_from_the_analysis_pipeline.
shinytest2-tm_t_coxreg 💀 $0.01$ $-0.01$ e2e_tm_t_coxreg_Deselection_of_cov_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_basic_info 💀 $0.03$ $-0.03$ unnamed
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Deselection_of_anrind_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Deselection_of_aval_var_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Deselection_of_avalu_var_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Deselection_of_param_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Deselection_of_patient_id_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Deselection_of_time_points_throws_validation_error.
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Module_initializes_in_teal_without_errors_and_produces_table_output.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_anrind_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_aval_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_avalu_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_param_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_paramcd_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_patient_id_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.09$ e2e_tm_t_pp_laboratory_Selecting_time_points_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_pp_laboratory 👶 $+0.10$ e2e_tm_t_pp_laboratory_Starts_with_specified_label_patient_id_paramcd_param_time_points_aval_var_avalu_var_anrind_round_value.
shinytest2-tm_t_pp_medical_history 👶 $+0.09$ e2e_tm_t_pp_medical_history_Selecting_mhdistat_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_shift_by_arm 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_Deselection_of_visit_var_throws_validation_error.
shinytest2-tm_t_shift_by_arm 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_Selecting_paramcd_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm 👶 $+0.09$ e2e_tm_t_shift_by_arm_Selecting_paramcd_values_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_Selecting_visit_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm 👶 $+0.10$ e2e_tm_t_shift_by_arm_Starts_with_specified_label_arm_var_useNA_add_total.
shinytest2-tm_t_shift_by_arm 💀 $0.02$ $-0.02$ e2e_tm_t_shift_by_arm_Starts_with_specified_label_arm_varparamcd_visit_var_useNA_treatment_flag_var_add_total.
shinytest2-tm_t_shift_by_arm_by_worst 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_by_worst_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_shift_by_arm_by_worst 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_by_worst_Deselection_of_worst_flag_throws_validation_error.
shinytest2-tm_t_shift_by_arm_by_worst 👶 $+0.09$ e2e_tm_t_shift_by_arm_by_worst_Deselection_of_worst_flag_var_throws_validation_error.
shinytest2-tm_t_shift_by_arm_by_worst 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_by_worst_Selecting_worst_flag_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm_by_worst 👶 $+0.09$ e2e_tm_t_shift_by_arm_by_worst_Selecting_worst_flag_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_arm_by_worst 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_arm_by_worst_Starts_with_specified_label_arm_var_paramcd_worst_flag_var_aval_var_baseline_var_useNA_treatment_flag_var_add_total.
shinytest2-tm_t_shift_by_arm_by_worst 👶 $+0.11$ e2e_tm_t_shift_by_arm_by_worst_Starts_with_specified_label_useNA_add_total.
shinytest2-tm_t_shift_by_grade 💀 $0.02$ $-0.02$ e2e_tm_t_shift_by_grade_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_shift_by_grade 💀 $0.01$ $-0.01$ e2e_tm_t_shift_by_grade_Selecting_paramcd_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_shift_by_grade 👶 $+0.11$ e2e_tm_t_shift_by_grade_Selecting_paramcd_values_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_smq 👶 $+0.18$ e2e_tm_t_smq_Deselection_of_baskets_throws_validation_error.
shinytest2-tm_t_smq 👶 $+0.19$ e2e_tm_t_smq_Deselection_of_llt_throws_validation_error.
shinytest2-tm_t_smq 💀 $0.01$ $-0.01$ e2e_tm_t_smq_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_smq 💀 $0.01$ $-0.01$ e2e_tm_t_smq_Deselection_of_worst_flag_throws_validation_error.
shinytest2-tm_t_smq 👶 $+0.18$ e2e_tm_t_smq_Selecting_baskets_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_smq 👶 $+0.18$ e2e_tm_t_smq_Selecting_llt_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_smq 💀 $0.01$ $-0.01$ e2e_tm_t_smq_Selecting_paramcd_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_smq 💀 $0.01$ $-0.01$ e2e_tm_t_smq_Selecting_worst_flag_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_summary_by 👶 $+0.09$ e2e_tm_t_summary_by_Deselecting_by_vars_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_summary_by 💀 $0.01$ $-0.01$ e2e_tm_t_summary_by_Deselection_of_arm_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_summary_by 👶 $+0.09$ e2e_tm_t_summary_by_Selecting_by_vars_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_summary_by 👶 $+0.09$ e2e_tm_t_summary_by_Selecting_paramcd_values_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_tte 💀 $0.01$ $-0.01$ e2e_tm_t_tte_Deselection_of_paramcd_throws_validation_error.
shinytest2-tm_t_tte 👶 $+0.09$ e2e_tm_t_tte_Deselection_of_paramcd_values_throws_validation_error.
shinytest2-tm_t_tte 👶 $+0.09$ e2e_tm_t_tte_Deselection_of_strata_var_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_tte 💀 $0.01$ $-0.01$ e2e_tm_t_tte_Deselection_of_strata_var_changes_the_table_and_throw_validation_errors.
shinytest2-tm_t_tte 💀 $0.01$ $-0.01$ e2e_tm_t_tte_Selecting_paramcd_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_tte 👶 $+0.10$ e2e_tm_t_tte_Selecting_paramcd_values_changes_the_table_and_does_not_throw_validation_errors.
shinytest2-tm_t_tte 💀 $0.01$ $-0.01$ e2e_tm_t_tte_Starts_with_specified_label_paramcd_event_desc_var_arm_var_buckets_strata_var_time_points_pval_method_coxph_ties_coxph_conf_level_coxph_conf_level_survfit_conf_type_survfit_probs_survfit_compare_arms_combine_comp_arms.
shinytest2-tm_t_tte 👶 $+0.12$ e2e_tm_t_tte_Starts_with_specified_label_paramcd_event_desc_var_arm_var_strata_var_time_points_conf_level_coxph_conf_level_survfit_compare_arms_combine_comp_arms.
tm_g_lineplot 👶 $+0.02$ tm_g_lineplot_builds_a_teal_module_with_teal.picks_defaults
tm_t_pp_laboratory 👶 $+1.45$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_in_returned_teal_data_when_round_value_changes_from_0_to_4_decimal_places
tm_t_pp_laboratory 👶 $+2.12$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_anrind_changes_from_ANRIND_to_SEX
tm_t_pp_laboratory 👶 $+2.08$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_aval_var_changes_from_AVAL_to_AGE
tm_t_pp_laboratory 👶 $+2.13$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_avalu_var_changes_from_AVALU_to_SEX
tm_t_pp_laboratory 👶 $+2.48$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_param_changes_from_PARAM_to_SEX
tm_t_pp_laboratory 👶 $+2.30$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_paramcd_changes_from_PARAMCD_to_STUDYID
tm_t_pp_laboratory 👶 $+2.02$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_produces_different_table_data_when_time_points_changes_from_ADY_to_AGE
tm_t_pp_laboratory 👶 $+1.73$ tm_t_pp_laboratory_server_reactive_inputs_produce_expected_changes_in_returned_teal_data_updates_pt_id_in_returned_teal_data_when_patient_id_input_changes
utils_picks 👶 $+0.01$ create_picks_helper_errors_when_datasets_is_NULL
utils_picks 👶 $+0.01$ create_picks_helper_errors_when_datasets_is_not_a_datasets_object
utils_picks 👶 $+0.01$ create_picks_helper_errors_when_x_is_neither_pick_nor_picks
utils_picks 👶 $+0.01$ create_picks_helper_returns_x_unchanged_if_it_already_has_datasets_attached
utils_picks 👶 $+0.01$ create_picks_helper_wraps_a_pick_object_with_the_supplied_datasets
utils_picks 👶 $+0.01$ create_picks_helper_wraps_a_picks_object_without_datasets_with_the_supplied_datasets
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_errors_on_delayed_choices_selected
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_errors_when_input_is_not_a_picks_or_choices_selected_object
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_infers_multiple_TRUE_when_more_than_one_value_is_selected
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_preserves_fixed_TRUE_from_the_choices_selected_object
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_respects_the_multiple_argument
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_returns_a_teal.picks_values_object_from_a_choices_selected
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_returns_the_same_picks_object_if_input_already_inherits_picks
utils_picks 👶 $+0.01$ migrate_choices_selected_to_values_returns_variables_unchanged_column_pick_only_not_coerced_to_values_
utils_picks 👶 $+0.06$ migrate_choices_selected_to_variables_emits_a_deprecation_warning_for_choices_selected_input
utils_picks 👶 $+0.02$ migrate_choices_selected_to_variables_emits_a_deprecation_warning_for_select_spec_input
utils_picks 👶 $+0.01$ migrate_choices_selected_to_variables_errors_when_x_is_NULL_and_null.ok_FALSE
utils_picks 👶 $+0.01$ migrate_choices_selected_to_variables_returns_NULL_when_null.ok_TRUE_and_x_is_NULL
utils_picks 👶 $+0.01$ migrate_choices_selected_to_variables_returns_the_same_picks_object_if_input_already_inherits_picks
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_adds_values_when_ommited
utils_picks 👶 $+0.06$ migrate_value_choices_to_picks_returns_a_teal.picks_picks_object
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_returns_the_same_picks_object_if_input_is_already_a_picks_object
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_suports_picks_with_datasets_and_variables_but_no_values
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_suports_picks_with_datasets_and_variables_but_no_values_and_without_adding_values_
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_only_variables_
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_only_variables_without_adding_values
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_picks_with_dataset_variables_and_values
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_picks_with_only_variables
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_picks_with_only_variables_and_does_not_add_values_
utils_picks 👶 $+0.01$ migrate_value_choices_to_picks_supports_picks_with_variables_and_values_but_no_datasets

Results for commit b77135a

♻️ This comment has been updated with latest results.

Comment thread R/tm_a_mmrm.R Outdated
Comment thread DESCRIPTION Outdated
github-actions Bot and others added 7 commits May 13, 2026 12:49
# Pull Request

It partially fixes #1472 

Simple module with table. The code is not 100% reproducible yet, but is
not specific to this module.
E2E test have been fixed too.

Use this app to test it:
```
devtools::load_all()
 data <- teal_data()
 data <- within(data, {
   ADSL <- tmc_ex_adsl
   ADCM <- tmc_ex_adcm
 })
 join_keys(data) <- default_cdisc_join_keys[names(data)]
 adcm_keys <- c("STUDYID", "USUBJID", "ASTDTM", "CMSEQ", "ATC1", "ATC2", "ATC3", "ATC4")
 join_keys(data)["ADCM", "ADCM"] <- adcm_keys

 ADSL <- data[["ADSL"]]
 ADCM <- data[["ADCM"]]

 app <- init(
   data = data,
   modules = modules(
     tm_t_mult_events(
       label = "Concomitant Medications by Medication Class and Preferred Name",
       dataname = "ADCM",
       arm_var = variables(choices = c("ARM", "ARMCD"), selected = "ARM"),
       seq_var = variables(choices = "CMSEQ", selected = "CMSEQ", fixed = TRUE),
       hlt = variables(
         choices = c("ATC1", "ATC2", "ATC3", "ATC4"),
         selected = c("ATC1", "ATC2", "ATC3", "ATC4")
       ),
       llt = variables(
         choices = "CMDECOD",
         selected = "CMDECOD"
       ),
       add_total = TRUE,
       event_type = "treatment"
     )
   )
 )
 if (interactive()) {
   shinyApp(app$ui, app$server)
 }
```

---------

Co-authored-by: Marcin <133694481+m7pr@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread R/tm_a_mmrm.R
transformators = list(),
decorators = list()) {
message("Initializing tm_a_mmrm")
cov_var <- teal.transform::add_no_selected_choices(cov_var, multiple = TRUE)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we here add the "all-clear" = TRUE?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still no idea what this "all-clear" does : P so can't help you : P

Comment thread R/tm_g_ci.R
```


devtools::load_all('../teal.picks')
devtools::load_all('../teal')
devtools::load_all('.')

data <- teal_data()
data <- within(data, {
  library(dplyr)
  ADSL <- tmc_ex_adsl %>%
    mutate(ITTFL = factor("Y") %>%
             with_label("Intent-To-Treat Population Flag"))
  ADAE <- tmc_ex_adae %>%
    filter(!((AETOXGR == 1) & (AESEV == "MILD") & (ARM == "A: Drug X")))
})
join_keys(data) <- default_cdisc_join_keys[names(data)]

ADSL <- data[["ADSL"]]
ADAE <- data[["ADAE"]]

app <- init(
  data = data,
  modules = modules(
    tm_g_barchart_simple(
      label = "ADAE Analysis",
      x = picks(
        datasets("ADSL"),
        variables(
          choices = c(
            "ARM", "ACTARM", "SEX",
            "RACE", "ITTFL", "SAFFL", "STRATA2"
          ),
          selected = "ACTARM",
          multiple = FALSE
        )
      ),
      fill = picks(
        datasets(choices = c("ADSL", "ADAE")),
        variables(
          choices = c(
            "ARM", "ACTARM", "SEX",
            "RACE", "ITTFL", "SAFFL", "STRATA2",
            "AETOXGR", "AESEV", "AESER"
          ),
          selected = "SEX",
          multiple = FALSE
        )
      ),
      x_facet = picks(
        datasets(choices = c("ADAE", "ADSL")),
        variables(
          choices = c(
            "AETOXGR", "AESEV", "AESER",
            "ARM", "ACTARM", "SEX",
            "RACE", "ITTFL", "SAFFL", "STRATA2"
          ),
          selected = "AETOXGR",
          multiple = FALSE
        )
      ),
      y_facet = picks(
        datasets(choices = c("ADAE", "ADSL")),
        variables(
          choices = c(
            "AETOXGR", "AESEV", "AESER",
            "ARM", "ACTARM", "SEX",
            "RACE", "ITTFL", "SAFFL", "STRATA2"
          ),
          selected = "AESEV",
          multiple = FALSE
        )
      )
    )
  )
)

shiny::shinyApp(app$ui, app$server)

```

<img width="747" height="494" alt="image"
src="https://github.com/user-attachments/assets/6a0bb402-e588-4fc6-aad5-3b290da1e3ce"
/>

---------

Signed-off-by: Marcin <133694481+m7pr@users.noreply.github.com>
Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread R/tm_t_abnormality_by_worst_grade.R Outdated
Comment on lines +364 to +366
worst_flag_indicator <- migrate_choices_selected_to_values(worst_flag_indicator, arg_name = "worst_flag_indicator")
worst_flag_value <- as.character(worst_flag_indicator$selected)
checkmate::assert_character(worst_flag_value, min.len = 1L, .var.name = "worst_flag_indicator$selected")

@averissimo averissimo May 15, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@m7pr @osenan this fixes the value, but the former implementation allowed for options

Image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably becuase the default for worst_flag_indicator is set to

multiple = FALSE

so that should be changed.

I wonder how we can detect that on all arguments in all modules : P ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, we had to actually change it as it was an html component and not an input. Here is the PR that changes this:
#1539

averissimo and others added 2 commits May 15, 2026 09:46
…me` removal (#1530)

# Pull Request

### Changes description

- `conf_values(_*)?` is simplified as only `fixed = TRUE|FALSE` should
be used (it's not a real pick)
- Removed "arg_name" parameter usage

---------

Signed-off-by: André Veríssimo <211358+averissimo@users.noreply.github.com>
Co-authored-by: Oriol Senan <35930244+osenan@users.noreply.github.com>
Comment thread R/tm_t_coxreg.R
Comment thread R/tm_t_tte.R Outdated
Fixes all checks in here #1527 except e2e tests.
Please check the CI before merging

---------

Signed-off-by: Oriol Senan  <35930244+osenan@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
m7pr and others added 6 commits May 15, 2026 14:07
# Pull Request

### Changes description

- Add `teal.picks` prefix
- Restore some of the previous defaults
- Change `tm_t_tte` to single method

---------

Signed-off-by: André Veríssimo <211358+averissimo@users.noreply.github.com>
Co-authored-by: Oriol Senan <35930244+osenan@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: osenan <oriol.senan@businesspartner.roche.com>
Part of
#152
This may need a second round after this is merged
#1533

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: osenan <oriol.senan@businesspartner.roche.com>
It fixes #1527 E2E failing tests.

One test was failing due to small differences between the validation
message in browsers. The solution was a regexp instead of a fixed
message for validation.

Another test was failing due to the custom wait for JS not correctly
capturing the table after some merges.

Finally, the third module with failing tests was the tm_t_pp_laboratory.
In all cases, the app had not loaded the table and the test were
failing. I added a custom wait for js that checks that the table has
rows.

---------

Signed-off-by: Oriol Senan  <35930244+osenan@users.noreply.github.com>
…gration (#1536)

This are the necessary changes for this issue #1528 

In module `tm_t_logistic.R` it was required to update the input
validation. If not one argument could be NULL and input validation
failed.
In module `tm_t_exposure.R` the change was required on the
documentation. The example did not included a value, which was necessary
for the table to appear.

Here the code for the `tm_t_exposure` module:
```
devtools::load_all()
library(dplyr)

 data <- teal_data()
 data <- within(data, {
   ADSL <- tmc_ex_adsl
   ADEX <- tmc_ex_adex

   set.seed(1, kind = "Mersenne-Twister")
   .labels <- col_labels(ADEX, fill = FALSE)
   ADEX <- ADEX %>%
     distinct(USUBJID, .keep_all = TRUE) %>%
     mutate(
       PARAMCD = "TDURD",
       PARAM = "Overall duration (days)",
       AVAL = sample(x = seq(1, 200), size = n(), replace = TRUE),
       AVALU = "Days"
     ) %>%
     bind_rows(ADEX)
   col_labels(ADEX) <- .labels
 })
 join_keys(data) <- default_cdisc_join_keys[names(data)]

 app <- init(
   data = data,
   modules = modules(
     tm_t_exposure(
       label = "Duration of Exposure Table",
       dataname = "ADEX",
       paramcd = variables(choices = "PARAMCD"),
       col_by_var = variables(
         choices = c("SEX", "ARM"),
         selected = "SEX"
       ),
       row_by_var = variables(
         choices = c("RACE", "REGION1", "STRATA1", "SEX"),
         selected = "RACE"
       ),
       parcat = picks(variables(choices = "PARCAT2"), values(), check_dataset = FALSE),
       add_total = FALSE
     )
   ),
   filter = teal_slices(teal_slice("ADSL", "SAFFL", selected = "Y"))
 )
 if (interactive()) {
   shinyApp(app$ui, app$server)
 }
```

Now for the tm_t_logistic module:

```

devtools::load_all()
 library(dplyr)

 data <- teal_data()
 data <- within(data, {
   ADSL <- tmc_ex_adsl
   ADRS <- tmc_ex_adrs %>%
     filter(PARAMCD %in% c("BESRSPI", "INVET"))
 })
 join_keys(data) <- default_cdisc_join_keys[names(data)]

 ADSL <- data[["ADSL"]]
 ADRS <- data[["ADRS"]]

 arm_ref_comp <- list(
   ACTARMCD = list(
     ref = "ARM B",
     comp = c("ARM A", "ARM C")
   ),
   ARM = list(
     ref = "B: Placebo",
     comp = c("A: Drug X", "C: Combination")
   )
 )

 app <- init(
   data = data,
   modules = modules(
     tm_t_logistic(
       label = "Logistic Regression",
       dataname = "ADRS",
       paramcd = picks(variables("PARAMCD", "PARAMCD"),
         values(multiple = FALSE),
         check_dataset = FALSE
       ),
       cov_var = variables(selected = "ARM"),
       avalc_var = variables("AVALC", fixed = TRUE),
       conf_level = values(c(0.95, 0.9, 0.8), 0.95)
     )
   )
 )
 if (interactive()) {
   shinyApp(app$ui, app$server)
 }

```

---------

Signed-off-by: Oriol Senan  <35930244+osenan@users.noreply.github.com>
@@ -0,0 +1,48 @@
---

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove skills before merge

m7pr and others added 2 commits May 26, 2026 16:01
Closes
#1537

The broad `observe` + `priority = 1L` was addressing a real bug
(responders not updating when `arm/strata/merge` changed), but it was
heavier than needed. I switched to `observeEvent(anl_q(), ...)`, which
is the same pattern as `tm_t_events_patyear` / `tm_t_logistic` and
matches the already-migrated `tm_g_forest_rsp` responders logic, without
priority or `invisible()` dependencies.

---------

Signed-off-by: Marcin <133694481+m7pr@users.noreply.github.com>
Co-authored-by: Oriol Senan <35930244+osenan@users.noreply.github.com>
…ion (#1539)

# Pull Request

It fixes this comment
[here](#1470 (comment)).
We had slightly changed the behavior of the module after the migration.
This PR keeps the use of `teal.picks::values` but allowing to use
multiple worst flag indicators.

Test it with the example on the module:

```
devtools::load_all()
data <- teal_data()
 data <- within(data, {
   ADSL <- teal.modules.clinical::tmc_ex_adsl
   ADLB <- teal.modules.clinical::tmc_ex_adlb %>%
     dplyr::filter(!AVISIT %in% c("SCREENING", "BASELINE"))
 })
 join_keys(data) <- default_cdisc_join_keys[names(data)]

 ADSL <- data[["ADSL"]]
 ADLB <- data[["ADLB"]]

 app <- init(
   data = data,
   modules = modules(
     tm_t_abnormality_by_worst_grade(
       label = "Laboratory Test Results with Highest Grade Post-Baseline",
       dataname = "ADLB",
       arm_var = choices_selected(
         choices = variable_choices(ADSL, subset = c("ARM", "ARMCD")),
         selected = "ARM"
       ),
       paramcd = choices_selected(
         choices = value_choices(ADLB, "PARAMCD", "PARAM"),
         selected = c("ALT", "CRP", "IGA")
       ),
       worst_flag_indicator = teal.transform::choices_selected(c("Y", "N")),
       add_total = FALSE
     )
   ),
   filter = teal_slices(
     teal_slice("ADSL", "SAFFL", selected = "Y"),
     teal_slice("ADLB", "ONTRTFL", selected = "Y")
   )
 )
 if (interactive()) {
   shinyApp(app$ui, app$server)
 }
 ```
 You should see the module working and two options available.
 Note: If you select "N" as worst flag indicator it will fail to compute the table. (It says it is computing and it never finishes). But it also happens in the example module before migration, that allowed multiple values and the "N" just does not work. It needs the right data that can allow multiple correct worst flag indicator. But the example proves that the multiple values are in the UI and used by the module.

---------

Signed-off-by: André Veríssimo <211358+averissimo@users.noreply.github.com>
Co-authored-by: André Veríssimo <211358+averissimo@users.noreply.github.com>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants